カスタム投稿のサブループ (get_posts)でカテゴリを絞って表示

カスタム投稿のサブループ (get_posts)でカテゴリを絞って表示メモ。

WordPress公式にもある通り、通常のpostでは

<?php $args = array(
	'category'         => '',
	'category_name'    => '',
);

参考:テンプレートタグ/get posts

categoryかcategory_nameで指定する形だが、カスタム投稿でカテゴリーを作成する場合、カテゴリーという呼び名ではなく独自のタクスノミ名が設定されている。そのため、

<?php $args = array(
	'tax_query' => array(
		array(
			'taxonomy' => 'カスタム投稿のカテゴリ名', 
			'field' => 'slug', 
			'terms' => '投稿時に入力したカテゴリスラッグ' 
			)
		)
);

こんな感じにしてカテゴリを絞り込む。

参考:非推奨のquery_postsを使わずget_postsでカスタム投稿タイプの一覧を表示させる

異なるカスタム投稿の条件と重ねたサブループ (get_posts)

<?php

$args1 = array(
'posts_per_page' => 5,
'post_type' => 'カスタム投稿名1',
'tax_query' => array(
    array(
        'taxonomy' => 'カスタム投稿のカテゴリスラッグ', 
        'field' => 'slug', 
        'terms' => 'カテゴリ名' 
        )
    )
);

$args2 = array(
'posts_per_page' => 5,
'post_type' => 'カスタム投稿名2',
'tax_query' => array(
    array(
        'taxonomy' => 'カスタム投稿のカテゴリスラッグ', 
        'field' => 'slug', 
        'terms' => 'カテゴリ名' 
        )
    )
);

$myposts1 = get_posts( $args1 );
$myposts2 = get_posts( $args2 );

$myposts = array_merge($myposts1, $myposts2 ); 
?>

参考:ワードプレスで、複数の$argsを一つの結果にまとめたい