カスタム投稿タイプでカテゴリーとタグを追加して一覧でも表示させる方法
今回は、カスタム投稿タイプをfunctions.phpにコードを書き足している場合にそのカスタム投稿タイプでカテゴリーとタグをつかえるようにする方法と、カテゴリーとタグのアーカイブページでカスタム投稿タイプの記事が表示されるようにする方法を解説します。
目次
カスタム投稿タイプで、WordPressにデフォルトで用意されている「カテゴリー」と「タグ」を使えるようにする方法
functions.phpのカスタム投稿タイプを追加している関数内に下記を追記します。
register_taxonomy_for_object_type('category', 'article');
register_taxonomy_for_object_type('post_tag', 'article');
具体的にはこのように書きます。
function add_custom_post() {
register_post_type(
'article',
array(
'label'=> '記事',
'labels' => array(
'menu_name' => '記事'
),
'public' => true,
'query_var' => true,
'hierarchical' => false,
'rewrite' => array('slug' => 'article'),
'has_archive' => true,
'show_in_rest' => true,
'supports' => array(
'title',
'editor',
'thumbnail',
'excerpt',
'author'
)
)
);
register_taxonomy_for_object_type('category', 'article');
register_taxonomy_for_object_type('post_tag', 'article');
}
add_action('init', 'add_custom_post');
カテゴリーとタグのアーカイブページでカスタム投稿タイプの記事が表示されるようにする方法
functions.phpに下記を追記します。
カテゴリーアーカイブにカスタム投稿タイプを含める方法
function add_post_category_archive( $wp_query ) {
if ($wp_query->is_main_query() && $wp_query->is_category()) {
$wp_query->set( 'post_type', array('post','article'));
}
}
add_action( 'pre_get_posts', 'add_post_category_archive' , 10 , 1);
タグアーカイブにカスタム投稿タイプを含める方法
function add_post_tag_archive( $wp_query ) {
if ($wp_query->is_main_query() && $wp_query->is_tag()) {
$wp_query->set( 'post_type', array('post','article'));
}
}
add_action( 'pre_get_posts', 'add_post_tag_archive' , 10 , 1);