メインページに、3つのカテゴリからの投稿と1つのカスタム投稿タイプを表示します。
1つのpre_get_posts
関数にまとめる方法はありますか?または、CPT用に1回、特定のカテゴリの投稿用に1回、個別にクエリする必要がありますか。
カテゴリaからの投稿、カテゴリbからの投稿、別のフォームカテゴリcからの投稿、そして最後にカスタム投稿の種類 - のそれぞれが別々のクエリである必要があります。
これらを「二次的な問い合わせ」と考えてください - (一次的な問い合わせはあなたをホームページに載せるものです)。それで、あなたはWP_Query
の別々のインスタンスを使いたいでしょう(これを参照してください 関連記事 )。
例えば。
$post_from_cat_a = new WP_Query(array(
'category__name' => array('a'),
'posts_per_page'=> 1
));
if( $post_from_cat_a->have_posts() ){
while( $post_from_cat_a->have_posts() ): $post_from_cat_a->the_post();
//Display output here
endwhile;
}
$post_from_cat_b = new WP_Query(array(
'category__name' => array('b'),
'posts_per_page'=> 1
));
if( $post_from_cat_b->have_posts() ){
...
...
最後にwp_reset_postdata();
を呼び出すことを忘れないでください。