このサイト「ニッチコレクティング」って、が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.phpやsingle-news.phpといった専用のテンプレートファイルを用意してあげると、一気にサイトの完成度が上がるのです。投稿タイプごとに見た目やレイアウトを完全にコントロールできる。この「バックエンドのデータ構造」と「フロントエンドの表示」を自由に連携させられる感覚こそ、WordPressでサイトを構築する醍醐味だなと思います。
さらなる拡張へ
カスタム投稿タイプを作ったら、今度はそれに紐づくカスタムタクソノミー(カテゴリーやタグみたいな分類)を作りたくなったり、カスタムフィールドで入力項目を増やしたくなったり…。そういう連鎖が、Web制作の楽しさでもあると思います。これからも、そんな「かゆいところに手が届く」情報をどんどん共有していきたいですね。