サポート » 使い方全般 » カスタム投稿、固定、投稿の同カテの記事をクエリで

  • 解決済 fumidalat

    (@fumidalat)


    MAMPでローカル環境でテストしているのでURLがありません。
    カスタムポストタイプUIでカスタムポストを複数作り、functionsに

    function my_main_query( $query ) {
    	if ( is_admin() || ! $query->is_main_query() )
    		return;
    
    	if ( $query->is_category() || $query->is_tag() ) {
    		$query->set( 'post_type', array( 'post', 'item', 'item2') );
    		return;
    	}
    }
    add_action( 'pre_get_posts', 'my_main_query' );

    で、カテゴリーを表示させています

    固定ページにもカテゴリーを表示させています。

    トップページに「新着記事」のタイトルを表示させたいのですが、「新着記事」は固定ページ、投稿、カスタム投稿から、カテゴリーnewsにチェックをいれたものを表示させたいと思います

    <?php if(is_page(’12’)): ?>//12はnewsカテゴリーのID

    <?php
      $args = array(
      'post_type' => array('page', 'post', 'item', 'item2'),
      'cat' => 15,
      'posts_per_page' => 5
      );
      $the_query = new WP_Query( $args );
      if ( $the_query->have_posts() ) :while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
      <?php the_title(); ?>
      <?php	endwhile; endif;
      wp_reset_postdata();
      ?>
      <?php	wp_reset_query();
      ?>

    <?php endif; ?>

    ところが
    ‘post_type’ => array(‘page’, ‘post’, ‘item’, ‘item2’),
    だとpageとpostのみが表示され

    ‘post_type’ => array(‘item’, ‘item2’),
    だとitemとitem2というカスタム投稿が表示されます

    post,page,item,item2
    すべてを表示させるにはどうすればいいでしょうか?

    よろしくお願いします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • @fumidalatさん

    はじめまして。

    各カスタム投稿の投稿日付は何になっていますでしょうか?

    記載されたクエリの意味は、
    「page/post/item/item2の投稿で、カテゴリIDが15に属するものの中から、投稿日時が新しい順で5件取得する」
    となります。

    item/item2の投稿日時がpage/postより古いため、最新5件に含まれず、page/postだけしか取得出来ていないように見えるのではないでしょうか。

    例えば、'posts_per_page' => -1 (全件取得)などとして、まずはちゃんと指定した投稿が全て取得出来ているか確認してみて下さい。

    トピック投稿者 fumidalat

    (@fumidalat)

    返信ありがとうございます

    ‘posts_per_page’ => -1

    にして全件取得してみましたが、同じ結果です。

    よろしくお願いします。

    トピック投稿者 fumidalat

    (@fumidalat)

    自己解決しました

    2ヶ国語プラグインの設定の問題でした

    お手数をおかけしてすみませんでした。

    • この返信は2年、 7ヶ月前にfumidalatが編集しました。
3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「カスタム投稿、固定、投稿の同カテの記事をクエリで」には新たに返信することはできません。