【WordPress】functions.phpでカスタム投稿タイプを追加する

WordPress functions.php カスタム投稿タイプを追加
  • URLをコピーしました!

制作実績という個別投稿タイプを作り、フォーマット化して投稿していきたいと思ったので作りました。

目次(クリックでジャンプ)

【WordPress】functions.phpでカスタム投稿タイプを追加する

functions.phpに以下のコードを追記

まずは、使用しているテーマのfunctions.phpに以下のコードを追記してください。
以下のコードは制作実績の投稿タイプを想定したものですが、適宜「works」「制作実績」となっている部分を変更してください。

###################################################
# 投稿タイプの追加
###################################################

function create_post_type(){
    register_post_type('works', [
        'labels' => [
            'name' => '制作実績',
            'singular_name' => 'works',
        ],
        'public' => true,
        'has_archive' => true,
        'menu_position' => 5,
        "show_in_rest" => true,
        'supports' => array('title', 'editor', 'thumbnail'),
    ]);
    //制作実績カテゴリ
    register_taxonomy(
        'works-cat',
        'works',
        array(
            'label' => 'カテゴリ',
            'singular_label' => '制作実績カテゴリ',
            'labels' => array(
                'all_items' => 'カテゴリ一覧',
                'add_new_item' => 'カテゴリを追加'
            ),
            'public' => true,
            'show_ui' => true,
            'show_in_rest' => true,
            'show_in_nav_menus' => true,
            'hierarchical' => true
        )
    );
    //制作実績タグ
    register_taxonomy(
        'works-tag',
        'works',
        array(
            'label' => 'タグ',
            'singular_label' => '制作実績タグ',
            'labels' => array(
                'add_new_item' => 'タグを追加'
            ),
            'public' => true,
            'show_ui' => true,
            'show_in_rest' => true,
            'show_in_nav_menus' => true,
            'hierarchical' => false
        )
    );
}
add_action('init', 'create_post_type');

register_post_type各プロパティの詳細

  • ‘name’ => ‘制作実績’: カスタム投稿タイプの一般的な名前。これは管理画面で表示されるカスタム投稿タイプの名前です。例えば、投稿タイプが「制作実績」である場合、管理画面のメニューで「制作実績」が表示されます。
  • ‘singular_name’ => ‘works’: カスタム投稿タイプの単数形の名前。これは管理画面で表示されるカスタム投稿タイプの単数形の名前です。例えば、投稿タイプが「制作実績」である場合、「制作実績」の1つの投稿は「works」と表示されます。
  • ‘public’ => true: この設定は、カスタム投稿タイプを一般公開するかどうかを制御します。設定がtrueの場合、カスタム投稿タイプは一般公開され、投稿一覧や単一の投稿ページが表示されます。デフォルト値はtrueです。
  • ‘has_archive’ => true: この設定は、カスタム投稿タイプにアーカイブページを持たせるかどうかを制御します。設定がtrueの場合、カスタム投稿タイプのアーカイブが表示されます。デフォルト値はfalseです。
  • ‘menu_position’ => 5: この設定は、管理画面のメニューでカスタム投稿タイプが表示される位置を指定します。数字が小さいほど上位に表示されます。デフォルト値は25です。
  • “show_in_rest” => true: この設定は、REST API経由でカスタム投稿タイプを取得および操作することを許可するかどうかを制御します。設定がtrueの場合、REST API経由でカスタム投稿タイプにアクセスできます。デフォルト値はfalseです。
  • ‘supports’ => array(‘title’, ‘editor’, ‘thumbnail’): この設定は、カスタム投稿タイプがサポートする投稿タイプのフィールドを指定します。例えば、’title’はタイトルフィールド、’editor’はビジュアルエディター、’thumbnail’はアイキャッチ画像を意味します。デフォルト値は、’title’と’editor’が指定されています。

register_taxonomy各プロパティの説明

  • ‘works-cat’: タクソノミーのスラッグ(Slug)。このスラッグは、WordPress内で識別されるタクソノミーの一意の識別子です。
  • ‘works’: タクソノミーが適用される投稿タイプまたはカスタム投稿タイプのスラッグ。この場合、’works-cat’タクソノミーが’works’というカスタム投稿タイプに適用されます。
  • ‘label’ => ‘カテゴリ’: タクソノミーの名前。管理画面で表示されるタクソノミーの名前です。
  • ‘singular_label’ => ‘制作実績カテゴリ’: タクソノミーの単数形の名前。管理画面で表示されるタクソノミーの単数形の名前です。
  • ‘labels’ => array(): タクソノミーのラベル設定。ここでは、’all_items’(すべてのアイテムの表示名)と’add_new_item’(新しいアイテムの追加名)が設定されています。
  • ‘public’ => true: タクソノミーが一般公開されるかどうかを制御します。
  • ‘show_ui’ => true: タクソノミーの管理画面UIを表示するかどうかを制御します。
  • ‘show_in_rest’ => true: REST API経由でタクソノミーにアクセスできるようにするかどうかを制御します。
  • ‘show_in_nav_menus’ => true: ナビゲーションメニューでタクソノミーを表示するかどうかを制御します。
  • ‘hierarchical’ => true: タクソノミーが階層構造を持つかどうかを制御します。階層構造を持つ場合はtrueに設定します。

カスタム投稿タイプにカスタムフィールドを追加する

カスタム投稿タイプにカスタムフィールドを追加したい場合は以下の記事を参考にしてください。

カスタム投稿タイプに管理画面でアイキャッチ画像を表示させる

おすすめのフリーランス向け求人・案件探しサービス

高単価案件、週3日~などフレキシブルな働きが可能な事が特徴の転職サービスです。案件をチェックするだけであれば無料の為、エンジニアやデザイナーの方は是非登録してみてください。

4275件と案件数豊富です(2024年4月現在)
WordPress functions.php カスタム投稿タイプを追加

この記事が気に入ったら
フォローしてね!

役に立った!と思ったらシェアお願いします
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

フリーランスのWebデザイナー「Kizineko」です。Webサイトのデザイン~コーディング、簡易的なプログラム実装等、Web制作に係る広くに携わっております。当ブログでは日々のメモ帳として便利なコードなどを共有しております。

目次(クリックでジャンプ)