WordPress

【WordPress】カスタム投稿タイプを作成する方法・解説

この記事では、カスタム投稿タイプを作成方法をご紹介します。この記事を読めば、管理画面に新しいメニューが追加され、特定の用途(お知らせ、実績など)専用の投稿画面が作れるようになります。

そもそもカスタム投稿タイプとは何か?という説明はこちらの記事でしています。
【WordPress】固定ページ・投稿・カスタム投稿タイプの使い分け

カスタム投稿タイプを作成する方法は、大きく分けて2つあります。

1.function.phpに記述する(自分で書く)
2.プラグインで表示する

ひとつずつ解説していきます。

1.function.phpに記述する方法

使用しているテーマ(推奨:子テーマ)配下に「functions.php」を作成し、
親テーマのスタイルを読み込んでおきます。

function.phpに以下を記述します。

function register_card_post_type(){
    register_post_type('add_post',[
        'label' => '追加の投稿',
        'public' => true,
        'has_archive' => false,
        'menu_position' => 5,
        'show_in_rest' => true,
        'supports' => ['title', 'editor', 'thumbnail'],
    ]); 
} 
add_action('init','register_card_post_type');

入力できたら保存しましょう。


【コードの解説】不要な方は読み飛ばしてください

① function register_card_post_type()
register_card_post_typeについては、名前は自由です。投稿タイプを登録する処理をひとまとめにしています。

② register_post_type(‘add_post’,…
register_post_typeはWordPressの関数です。このまま書いてください。

‘add_post’は第1引数です。投稿タイプの スラッグとして扱われます。
例:add_post →https://xxx/add_post/ooo

③ 配列(設定オプション)
[

パラメータ役割・設定内容
‘label’管理画面に表示される名前
‘public’公開設定。trueでサイト上に表示、falseで管理画面専用になります。
‘has_archive’一覧ページを作るかどうか。trueで一覧ページ(アーカイブが有効になります。
‘menu_position’管理画面左メニューの表示位置。見やすさ調整用のため、動作には影響しません。
‘show_in_rest’trueでブロックエディタの表示
何も書かない場合は古い投稿画面(クラシックエディタ)になります。
‘supports’この投稿タイプで、何を管理画面に表示するかを決めています。ここに書かれたものだけが、投稿の編集画面に表示され、機能として使えるようになります。
今回有効にしているのは、タイトル(title)本文(editor) 、アイキャッチ画像(thumbnail)です。
他には、抜粋(excerpt) カスタムフィールド(custom-fields)などがあります。

]);
}

⑤ add_action(‘init’, ‘register_card_post_type’);
これで実行しています。

‘init’は初期化処理です。これを書かないとWordPressの準備前に実行される可能性があり、エラーに繋がるため記述しましょう。

‘register_card_post_type’は①の際に決めた自作関数です。


wordpressの管理画面に表示することができました。

2.プラグインで表示する方法

ACFを用いた表示方法

今回はACFで作成していきます。バージョン は 6.7.0

これ以外にも「Custom Post Type UI」など様々なプラグインがありますが、好きなものを選んでください。

ダウンロードしたら、サイドバーに「ACF」が追加されます。
投稿タイプをクリックしてください。

[+新規追加]から新しい投稿タイプを作成します。

複数ラベル:add_posts

単数ラベル:add_post

投稿タイプキー:add_post_2 
(add_postにしようとしたら、先ほどfunction.phpに記述した引数と同じだったため怒られてしまいました。)

複数ラベルと単数ラベルの違いは、

単数ラベル:1件を指す表示用
複数ラベル:一覧・集合を指す表示用

です。管理画面に表示される文言ですので、違和感がなければなんでも大丈夫です。

入力できたら[変更内容を保存]ボタンを押して保存してください。

一覧に追加されました。

管理画面のメニューに追加されています。

3.どちらの方が適切なのか メリット・デメリット

functions.php に書く場合

メリット

構造と表示がサーバー内に集まるため、何のための投稿タイプかサーバーを見るだけで分かりやすくなります。
実装が最もシンプルで、デバッグや修正に強いです。

デメリット

コードでの修正が必要なため、エンジニア以外の人が運用するのには向かないです。

プラグインを使用した場合

メリット

管理画面にプラグイン表示があるため、どのように作られたかわかりやすいです。
コードを入力する必要がないため、非エンジニアでも管理ができます。

デメリット

中身のコードが見えないため、トラブルがあった際はわかりにくいです。
使用しないサービスが入っている可能性、管理画面が肥大化・サイトが重くなる可能性があります。

4.まとめ

今回は、WordPressでカスタム投稿タイプを作成する2つの方法を解説しました。

保守性や軽量さを重視するなら:functions.php への記述

直感的な操作や管理のしやすさを重視するなら:プラグイン(ACFなど)の活用

どちらの方法を選んでも、カスタム投稿タイプを活用することで「お知らせ」「制作実績」「お客様の声」など、情報を整理して運用しやすくなるため、必要に応じて活用していきましょう。

TOP