投稿タイプ[japan」には他にタクソノミー「america01」等を設定している等でタクソノミー[japan01」を設定しない投稿があるということでしょうか?
もし、上記がそのとおりであれば
$japan_terms = get_terms('japan01',array('fields'=>'names'));
でjapan01のtermを全て取得して
query_postsの指定に
'taxonomy' => 'japan01',
'term' => 'topic01',
の代わりに
'japan01' => $japan_terms,
でいけないでしょうか。
トピック投稿者
kh45
(@kh45)
>jdbbさん
ご回答ありがとうございます。
> 投稿タイプ[japan」には他にタクソノミー「america01」等を設定している等でタクソノミー[japan01」を設定しない投稿があるということでしょうか?
はい、その通りです。
以下のような構造になります。
——————————————–
投稿タイプ「japan」
└タクソノミー「japan01」─「topics01」
─「topics02」
─「topics03」
─ 追加されていく
└タクソノミー「japan02」─「news01」
─「news02」
─「news03」
─ 追加されていく
——————————————–
「topics01」のシングルページに、
「japan01」に属する新着記事を3件表示させたいと思っています。
教えていただきました通り修正しましたところ、
Warning: urlencode() expects parameter 1 to be string, array given in /***/wp-includes/formatting.php on line 3192
というエラーが出てしまいました。
記述は以下のように変更しているのですが、記述に問題などございますでしょうか。
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$japan_terms = get_terms('japan01',array('fields'=>'names'));
query_posts( array(
'post_type' => 'japan',
'japan01' => $japan_terms,
'posts_per_page' => 3,
'paged' => $paged,
'order' => 'DESC'
)
);
if (have_posts()) :while (have_posts()) :
the_post();
?>
<p><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
<?php
endwhile;
endif;
wp_reset_query();
?>
すみません。色々と間違えまくってました。(ついでに出来るだろうと思ってたのができなかったっぽいです)
$japan_terms = get_terms('japan01',array('fields'=>'names'));
を
$japan_terms = get_terms('japan01',array('fields'=>'ids'));
に
'japan01' => $japan_terms,
を
'tax_query' => array(array(
'taxonomy' => 'japan01',
'field' => 'id',
'terms' => $japan_terms,
'operator' => 'IN'
)),
にしてください
トピック投稿者
kh45
(@kh45)
>jdbbさん
ご回答ありがとうございます。
また、ご丁寧にソースを書いていただきありがとうございます。
その通りに記述を変更しましたら、希望の形にする事ができました!
本当に、ありがとうございました。