• 解決済 nobugot

    (@nobugot)


    WP_queryを使って、特定のタグのカスタム投稿タイプの記事を表示しようとしているのですが、投稿タイプが「post」の記事のみ表示され、カスタム投稿タイプの記事は表示されません。

    tag.php でカスタム投稿タイプの記事を表示させるためには、function.phpに以下のような追記をしていますが、同様に特殊な設定が必要なのでしょうか?

    add_action( 'pre_get_posts', 'add_post_tag_archive' , 10 , 1);
    function add_post_tag_archive( $wp_query ) {
      if ($wp_query->is_main_query() && $wp_query->is_tag()) {
        $wp_query->set( 'post_type', array('post','カスタム投稿タイプ'));
      }
    }
4件の返信を表示中 - 1 - 4件目 (全4件中)
  • is_main_qyery() && is_tag() という条件が入っているのでタグアーカイブ ( tag.php ) だけに効きます。この条件を外すと他のところで問題がいろいろ生じるので残しておくことをお勧めします。その代わりに WP_Query を使うときに post_type パラメーターを指定することができます。

    トピック投稿者 nobugot

    (@nobugot)

    post_type は以下の様に指定しているのですが、
    カスタム投稿タイプの記事が表示されない状況です。
    以下の状態で tag_id のパラメータをはずすと、
    カスタム投稿タイプの記事も表示されます。

    <?php
    $args = array(
    'post_type' => 'post','カスタム投稿タイプ',
    'tag_id' => 5,
    'orderby' => 'rand',
    'posts_per_page' => 1
    );
    $the_query = new WP_Query( $args );
    ?>
    <?php if ( $the_query->have_posts() ) : ?>
    <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
    
    ここに内容
    
    <?php endwhile; endif; ?>

    array が抜けていますよ。

    'post_type' => array ( 'post', 'カスタム投稿タイプ' ),

    トピック投稿者 nobugot

    (@nobugot)

    あ、失礼しました!解決しました!ありがとうございます!!!

4件の返信を表示中 - 1 - 4件目 (全4件中)

トピック「WP_queryで特定のタグのカスタム投稿タイプの記事が表示されない」には新たに返信することはできません。