WordPressカスタム投稿タイプ完全ガイド

WordPressカスタム投稿タイプ完全ガイド

このサイト「ニッチコレクティング」って、がWebの仕事をしていて「これ、知りたかったんです。」と考えられるような、ちょっとマニアックですが、非常に実践的な情報を集めていくことを目指しているのです。特にWordPress周りは、調べれば調べるほど奥が深くて、まさにニッチな知識の宝庫だなという印象ます。

カスタム投稿タイプとは

これまでにも、functions.phpの便利なスニペットとか、ショートコードの作り方とか、ちょっと踏み込んだテーマを扱ってきましたけど、最近個人的に「やっぱりこれ、外せありませんな」って再認識しているのが「カスタム投稿タイプ」の存在なんです。

普通の「投稿」や「固定ページ」だけじゃ、どうしても管理が煩雑になっちゃう案件ってありますよね。例えば、制作実績を管理する「Works」とか、お知らせを載せる「News」とか。そういう時にカスタム投稿タイプをサクッと作れると、クライアントにとっても分かりやすいし、開発側もデータを扱いやすくなって本当に便利なんです。

基本的な実装方法

当初は難しそうだなと考えていたんですけど、基本のコードを一度理解しちゃえば、あとは応用でどうにでもなるのです。例えば、一番シンプルな「お知らせ」用のカスタム投稿タイプなら、こんな感じでfunctions.phpに書くだけで作れちゃいます。

function create_post_type() {
 register_post_type(
 'news', // 投稿タイプ名
 array(
 'labels' => array(
 'name' => 'お知らせ',
 'singular_name' => 'お知らせ'
 ),
 'public' => true,
 'has_archive' => true,
 'menu_position' => 5,
 'show_in_rest' => true,
 'supports' => array('title', 'editor', 'thumbnail', 'excerpt'),
 'rewrite' => array('slug' => 'news'),
 'menu_icon' => 'dashicons-megaphone',
 )
 );
}
add_action('init', 'create_post_type');

このコードをfunctions.phpに貼り付けるだけで、管理画面に「お知らせ」というメニューが出てくるのは、最初ちょっと感動しますよね。

専用テンプレートの作成

でも、本当に大事なのはここからで、作っただけだと、そのお知らせ一覧ページ(アーカイブページ)や詳細ページのデザインは、既存のテーマのものに依存しちゃうんです。

ここで一手間加えて、archive-news.phpsingle-news.phpといった専用のテンプレートファイルを用意してあげると、一気にサイトの完成度が上がるのです。投稿タイプごとに見た目やレイアウトを完全にコントロールできる。この「バックエンドのデータ構造」と「フロントエンドの表示」を自由に連携させられる感覚こそ、WordPressでサイトを構築する醍醐味だなと思います。

さらなる拡張へ

カスタム投稿タイプを作ったら、今度はそれに紐づくカスタムタクソノミー(カテゴリーやタグみたいな分類)を作りたくなったり、カスタムフィールドで入力項目を増やしたくなったり…。そういう連鎖が、Web制作の楽しさでもあると思います。これからも、そんな「かゆいところに手が届く」情報をどんどん共有していきたいですね。