【WordPress】複数の投稿タイプをクエリに指定する方法
WordPress
サブクエリ
複数指定
WordPressのクエリは「ひとつのクエリ」につき「ひとつの投稿タイプ」ではありません。実は複数の投稿タイプをまとめて指定することも出来ます。
この記事ではひとつのクエリに複数の投稿タイプを指定する方法をご紹介したいと思います。
この記事の目次を表示
複数の投稿タイプをクエリに指定する方法
WordPressのクエリを複数指定して記事を出力する方法をはこちら。
<?php
$args = array(
'post_type' => array('post','page'),
'posts_per_page' => 10,
'order' => 'DESC',
'orderby' => 'date',
);
$query = new WP_Query( $args );
if( $query->have_posts() ):
while( $query->have_posts() ):
// 投稿内容を表示
endwhile;
endif;
wp_reset_postdata();
?>
サブループを使い、投稿タイプを指定するpost_type
の部分でarray()
を使うことで複数の投稿タイプを指定します。
これだけで指定した複数の投稿タイプの記事を指定した順番通りに出力することが出来ます。
上の例では「投稿(post)」と「固定ページ(page)」を指定していますが、カスタム投稿タイプのスラッグ名を指定することも可能です。
'post_type' => array('カスタム投稿タイプのスラッグ名','カスタム投稿タイプのスラッグ名'),
また、3つ以上を指定することも可能です。
'post_type' => array('post','page','カスタム投稿タイプのスラッグ名'),
サブループで出来るのだから、メインループでも実装したいと思い、アクションフックのpre_get_posts()
を使い、メインループでも追加を試しましたがエラーになってしまうようです。
なので投稿タイプを複数まとめて指定する場合は、サブループを使うようにしましょう。
まとめ
いかがでしたか?
サブループを使うことで複数の投稿タイプをまとめて指定することが出来ます。
これを知っているとカスタマイズの幅が広がりますね。