固定ページにもカテゴリーを付けて「カテゴリーアーカイブ」(カテゴリー記事一覧)に表示させたいっていうお話し。
固定ページにカテゴリーをつけるコード
ググったらすぐいろいろ出てきたけど、それらをまとめて…試したコードがこちらです。
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 だと設定でこういうことが出来るのかもしれないです。
それは確認していないので、こんなコード書かなくてもいけちゃうならその方がいいと思います。
※もうご存知だと思いますが、アイキャッチ画像は内容にまったく関係ありません。