はじめに
カスタム投稿タイプは、WordPressの便利な機能の一つで、デフォルトの「投稿」や「ページ」とは異なる種類のコンテンツを管理することができます。
これを利用することで、特定のコンテンツを他の投稿と区別し、効率的に整理できます。
Cocoonはカスタム投稿タイプに対応しており、カスタム投稿タイプを管理画面に追加すれば、簡単に表示することができます。
この記事では、その方法について説明します。
カテゴリー、タグ、カスタムタクソノミーの違いについて
カスタムタクソノミー、カテゴリー、タグは、WordPressでコンテンツを分類するための手段ですが、それぞれに特徴があります(表1参照)。
| 特徴 | カテゴリー | タグ | カスタムタクソノミー |
|---|---|---|---|
| デフォルトで提供されているか | はい | はい | いいえ (ユーザー定義) |
| 階層構造 | はい | いいえ | カスタマイズ可能 |
| 使用目的 | 主に分類(大まかな分類) | 主に関連するキーワードや内容 | 特定のコンテンツに基づく独自の分類 |
| 投稿タイプの対応 | 投稿(Post) | 投稿(Post) | 任意の投稿タイプ |
| 柔軟性 | 限定的(階層の分類) | 限定的(自由に設定) | 高い(任意の階層構造、タクソノミー名など) |
完成イメージ

| 項目 | ラベル | スラッグ |
|---|---|---|
| カスタム投稿タイプ | お知らせ | news |
| カスタムタクソノミー | お知らせジャンル | news_genre |
実装手順
以下の手順で実装します。
- ラベルPHPを追加(管理画面にカスタム投稿メニューを追加)
以下のコードをfunctions.phpに追加します。
カスタム投稿タイプ
newsと、カスタムタクソノミーnews-genreを管理画面に追加します。add_action('init', function () { $args = [ 'comment_status' => 'open', // コメントを許可 'has_archive' => true, // アーカイブページを作成 'label' => 'お知らせ', // 管理画面に表示される名前 'menu_icon' => 'dashicons-info-outline', // 管理画面メニューのアイコン 'menu_position' => 5, // 管理画面のメニュー位置 'public' => true, // 投稿タイプを公開 'show_in_rest' => true, // Gutenbergを有効 'supports' => [ // 投稿に表示する項目 'comments', // コメント機能を有効 'custom-fields', // カスタムフィールドを有効 'editor', // 投稿に編集 'revisions', // 投稿履歴を有効 'thumbnail', // 投稿にサムネイル画像 'title', // 投稿にタイトル ], ]; register_post_type('my_news', $args); // カスタムタクソノミーを追加 $tax_args = [ 'hierarchical' => false, // 階層なし(タグ分類) 'label' => 'お知らせジャンル', // 管理画面での表示 'show_in_rest' => true, // ブロックエディタ表示 ]; register_taxonomy('my_news_genre', 'my_news', $tax_args); }); - ラベルPHPを追加(投稿一覧にカスタム投稿含め表示)
以下のコードをfunctions.phpに追加します。
add_action('pre_get_posts', function ($query) { if (!is_admin() && $query->is_main_query() && !is_page()) { // 全ての投稿タイプを対象 $post_types = get_post_types(array('public' => true)); $query->set('post_type', $post_types); } });
カスタム投稿の表示について
Cocoonには、カスタム投稿タイプを取得するための関数が用意されています。
また、single-news.phpやarchive-news.phpが存在しない場合、WordPressはデフォルトで single.phpやindex.phpを使用します。
デフォルトと異なるスタイルやレイアウトにしたい場合のみ、テンプレートを作成する必要があります。
なお、「クエリーループ」ブロックを使用すれば、コードを触らずに独自のページレイアウトを簡単に作成できます。
パーマリンク設定について
カスタム投稿を追加した場合、必ず設定→パーマリンクで設定を保存しなければ、カスタム投稿が正しく表示されません。
これにより、WordPressが新しい投稿タイプに対する適切なリライトルールを生成します。
さいごに
今回紹介した方法を使えば、Cocoonテーマにおいてカスタム投稿タイプやカスタムタクソノミーを問題なく表示できるようになります。
これにより、特定のコンテンツを効率よく管理でき、サイトの柔軟性が大きく向上します。




