固定ページでカテゴリーやタグが使えないか?
固定ページには初期設定では、カテゴリーやタグが選択できません。固定ページでもカテゴリーやタグを設定して一覧表示にも表示させたいなーと思い方法を探っていた時のメモ。
固定ページにカテゴリーを追加する
カテゴリーの追加は、functions.php
に以下の記述を追加します。
function add_category_page() {
register_taxonomy_for_object_type( 'category', 'page' );
}
add_action( 'init', 'add_category_page' );
固定ページをカテゴリーの一覧に表示する
固定ページをカテゴリーの一覧に表示するには、functions.php
に以下の記述を追加します。
function add_category_archive_page( $query ) {
if ( $query->is_category && $query->is_main_query() ) {
$query->set( 'post_type', ['post', 'page'] );
}
}
add_action( 'pre_get_posts', 'add_category_archive_page' );
固定ページにタグを追加する
カテゴリーと同じようにタグの追加は、functions.php
に以下の記述を追加します。
function add_tag_page() {
register_taxonomy_for_object_type( 'post_tag', 'page' );
}
add_action( 'init', 'add_tag_page' );
固定ページをタグの一覧に表示する
こちらもカテゴリーと同じく固定ページをタグの一覧に表示するには、functions.php
に以下の記述を追加します。
function add_tag_archive_page( $obj ) {
if ( is_tag() ) {
$obj->query_vars['post_type'] = [ 'post', 'page' ];
}
}
add_action( 'pre_get_posts', 'add_tag_archive_page' );
できた!\(^o^)/
気を付けないといけないのが、投稿とカテゴリーやタグを共有するということ。固定ページ独自のカテゴリーやタグを設定したければタクソノミーを使用しないといけないみたい。