WordPressでカスタム投稿を設定した場合、投稿のカテゴリーやタグは表示されません。
そこで、カスタム投稿にもカテゴリーを表示させる方法についてお伝えします。
なお、細かくテストしていないので、アーカイブなど上手く表示できないかもしれません。
(追加でコードが必要になる可能性大)
また、基本は、カスタム投稿はカスタムタクソノミーでカテゴリ分けを行います。
ちょっと、あまり使わない方法かもしれません。
条件
WordPress バージョン 5.8.3
カスタム投稿やカスタムタクソノミーは、function.phpにコードで入れる。
結論
以下はnewsというカスタムタクソノミーとカテゴリーを表示させる例です。
よくありがちなやつですね。。。
<?php /** * カスタム投稿 ニュース * * @package WordPress * @subpackage yorozuyaarimichi * @author aw1.jp * @version 2022.1.16 */ /** * カスタム投稿 ニュース * * @return void */ function add_custom_news() { if ( function_exists( 'register_post_type' ) ) { $slug = 'news'; $labels = array( 'name' => 'ニュース', 'singular_name' => 'ニュース', 'add_new' => 'ニュースを新しく追加', 'add_new_item' => 'ニュースを新しく追加', 'edit_item' => '編集', 'new_item' => '新しいニュースアイテム', 'view_item' => 'ニュースアイテムを見る', 'search_items' => '検索する', 'not_found' => '見つかりませんでした', 'not_found_in_trash' => 'ゴミ箱には見つかりませんでした', 'parent_item_colon' => '', ); // 管理画面で表示する項目 $supports_array = array( 'title', // タイトル 'editor', // エディタ 'author', // 投稿者 'thumbnail', // アイキャッチ 'excerpt', // 抜粋 'revisions', // リビジョン ); // 表示するカテゴリー $cat_array = array( 'news_category', // register_taxonomyで定義したカスタムタクソノミー 'category', // 投稿のカテゴリー ); register_post_type( 'news', array( 'label' => 'ニュース', 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'menu_position' => 3, 'show_ui' => true, 'query_var' => true, 'rewrite' => array( 'slug' => $slug ), 'capability_type' => 'post', 'has_archive' => true, 'hierarchical' => false, // 階層(親)の有無 'supports' => $supports_array, 'taxonomies' => $cat_array, ) ); } } add_action( 'init', 'add_custom_news' ); /** * ニュースのカテゴリー(カスタムタクソノミー)を追加 * * @return void */ function create_news_taxonomies() { $args_news_category = array( 'label' => 'ニュースカテゴリー', 'labels' => array( 'name' => 'ニュースのカテゴリー', 'singular_name' => 'ニュースのカテゴリー', 'search_items' => 'カテゴリーの検索', 'popular_items' => '人気のカテゴリー', 'all_items' => '全てのカテゴリー', 'parent_item' => '親カテゴリー', 'edit_item' => 'カテゴリーを編集する', 'update_item' => 'カテゴリーを更新する', 'add_new_item' => '新しいカテゴリーを追加する', 'new_item_name' => 'カテゴリーの名前', ), 'public' => true, 'show_ui' => true, 'show_admin_column' => true, 'hierarchical' => true, 'rewrite' => array( 'hierarchical' => false ), ); register_taxonomy( 'news_category', 'news', $args_news_category ); } // init アクションにフックして、そのタイミングで create_news_taxonomies を呼び出す add_action( 'init', 'create_news_taxonomies', 0 );
全部は書いていないですが、とりあえず、これを元にすれば何とかなると思います。
アーカイブの出力はまた別途だけど・・・