サポート » 使い方全般 » シングルページで同一タクソノミー記事を一覧表示

  • 解決済 kh45

    (@kh45)


    カスタム投稿タイプを使用し、サイトを作成しています。
    シングルページで、同一のタクソノミーの記事一覧を表示させたいと思っています。

    —————————————-
    カスタム投稿タイプ
     「japan」
    タクソノミー
     「japan01」
    ターム
     「topic01」「topic02」「topic03」・・・
    —————————————-

    <?php
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    
    query_posts( array(
    	'post_type' => 'japan',
    	'taxonomy' => 'japan01',
    	'term' => 'topic01',
    	'posts_per_page' => 3,
    	'paged' => $paged,
    	'order' => 'DESC'
    	)
    );
    
    if (have_posts()) :while (have_posts()) :
    	the_post();
    ?>
    <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    
    <?php
    endwhile;
    endif;
    wp_reset_query();
    ?>

    とするとターム「topic01」の一覧は表示できるのですが、
    タームを特定せず、タクソノミー「japan01」の新着記事一覧を表示するには、
    どのように記述すればよいでしょうか。
    ※タームは、今後お客さんが増やしていく予定で、こちらで管理ができません。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • 投稿タイプ[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さん
    ご回答ありがとうございます。

    また、ご丁寧にソースを書いていただきありがとうございます。
    その通りに記述を変更しましたら、希望の形にする事ができました!

    本当に、ありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「シングルページで同一タクソノミー記事を一覧表示」には新たに返信することはできません。