カスタム投稿タイプ詳細ページヘッダーに特定のタクソノミーを表示する方法

カスタム投稿タイプ詳細ページヘッダーに特定のタクソノミーを表示する方法

特定のカスタム投稿タイプ詳細ページヘッダーのタクソノミー情報に特定のタクソノミーを表示カスタマイズする方法について紹介します。

このページは上級者向けマニュアルです。

自作のプラグインや子テーマを使ってPHPでカスタマイズする内容が含まれます。

WordPress勉強中の方は知らない単語や関数などを調べながらカスタマイズにチャレンジしてみてください。

※このカスタマイズにはyStandard v4.14.0以上が必要になります。

カスタム投稿タイプのタクソノミー表示

yStandardではカスタム投稿タイプ詳細ページヘッダーに投稿タイプに紐づくタクソノミーのタームを各1つずつ表示する仕様になっています。

カスタム投稿タイプのタクソノミー表示例

このタクソノミー情報を特定のタクソノミーだけに絞ったり、特定のタクソノミーを除外する方法について紹介します。

特定のタクソノミーだけを表示する

カスタム投稿タイプ「manual」のタクソノミー情報に「manual_category」だけを表示したい場合のサンプルコードです▼

// 投稿タイプ「manual」詳細ページのタクソノミーに「manual_category」だけを表示する.
add_filter(
	'ys_get_manual_header_taxonomy',
	function ( $taxonomies ) {
		return [ 'manual_category' ];
	}
);

フィルターフック ys_get_${post_type}_header_taxonomy を使い、表示させたいタクソノミー名の配列を返すことで特定のタクソノミーだけを表示できます。

${post_type}部分は適宜変更してください。

特定のタクソノミーを除外する

カスタム投稿タイプ「manual」のタクソノミー情報から「manual_keywords」を除外したい場合のサンプルコードです▼

// 投稿タイプ「manual」詳細ページのタクソノミーから「manual_keywords」を除外する.
add_filter(
	'ys_get_manual_header_taxonomy',
	function ( $taxonomies ) {
		return array_diff( $taxonomies, [ 'manual_keywords' ] );
	}
);

引数としてカスタム投稿タイプに紐づくタクソノミーが渡されるので、表示したくないタクソノミーを配列から削除すればタクソノミー情報から除外されます。