※もうご存知だと思いますが、アイキャッチ画像は内容にまったく関係ありません。
この記事の所要時間: 41

固定ページにもカテゴリーを付けて「カテゴリーアーカイブ」(カテゴリー記事一覧)に表示させたいっていうお話し。

固定ページにカテゴリーをつけるコード

ググったらすぐいろいろ出てきたけど、それらをまとめて…試したコードがこちらです。

add_action('init','set_category_pages'); 
function set_category_pages() { 
   register_taxonomy_for_object_type('category', 'page'); 
} 

// カテゴリーの記事一覧に出したくない場合は下記は不要
add_action( 'pre_get_posts', 'set_category_archive_pages' ); 
function set_category_archive_pages( $query ) { 

	if ( $query->is_category() && $query->is_main_query() ) { 
		$query->set('post_type', array( 'post', 'page' )); 
	} 
} 
// ------ ここまで ------

カスタム投稿タイプにカテゴリーつけるコード

これ、例えば「カスタム投稿タイプだったらどうするの?」っていうのがすぐ思いつきますよね。

こうっす。

add_action('init','set_category_pages'); 
function set_category_pages() { 
   // 'page' をカスタム投稿タイプに変更する
   // register_taxonomy_for_object_type('category', 'page'); 
   register_taxonomy_for_object_type('category', 'book'); 
} 

// カテゴリーの記事一覧に出したくない場合は下記は不要
add_action( 'pre_get_posts', 'set_category_archive_pages' ); 
function set_category_archive_pages( $query ) { 

	if ( $query->is_category() && $query->is_main_query() ) { 
		// 'page' をカスタム投稿タイプに変更する
		// $query->set('post_type', array( 'post', 'page' )); 
		$query->set('post_type', array( 'post', 'book' )); 
	} 
} 
// ------ ここまで ------

※ カスタム投稿タイプを ‘book’ としたサンプルです。

固定ページとカスタム投稿タイプどっちもカテゴリーつけたい

じゃあ、固定ページとカスタム投稿タイプどっちも〜っていう欲張りさんプランはこちらです。

add_action('init','set_category_pages'); 
function set_category_pages() { 
   register_taxonomy_for_object_type('category', 'page'); 
   register_taxonomy_for_object_type('category', 'book'); 
} 

add_action( 'pre_get_posts', 'set_category_archive_pages' ); 
function set_category_archive_pages( $query ) { 

	if ( $query->is_category() && $query->is_main_query() ) { 
		$query->set('post_type', array( 'post', 'page', 'book' )); 
	} 
} 

※カスタム投稿タイプを ‘book’ としたサンプルです。

こんな感じです。

じゃあ、そゆことで〜

最後に

Custom Post Type UI だと設定でこういうことが出来るのかもしれないです。

それは確認していないので、こんなコード書かなくてもいけちゃうならその方がいいと思います。

※もうご存知だと思いますが、アイキャッチ画像は内容にまったく関係ありません。

この記事が気に入ったら
いいね ! しよう

Twitter で