14. カスタム投稿タイプとタクソノミー

この章では、カスタム投稿タイプとカスタムタクソノミーを学びます。

WordPressの標準投稿だけでは管理しづらいコンテンツは、専用の投稿タイプを作ると整理しやすくなります。

カスタム投稿タイプとは

カスタム投稿タイプは、WordPressに独自のコンテンツ種別を追加する仕組みです。

たとえば、次のような内容に使います。

  • 制作実績
  • お客様の声
  • スタッフ紹介
  • FAQ
  • セミナー
  • 商品情報

標準の「投稿」と混ぜると管理しづらい内容は、カスタム投稿タイプに分けます。

投稿との違い

標準投稿は、お知らせやブログのような時系列コンテンツに向いています。

カスタム投稿タイプは、サイト固有の情報を管理する時に向いています。

内容管理方法
お知らせ投稿
ブログ投稿
制作実績カスタム投稿タイプ
スタッフカスタム投稿タイプ
FAQカスタム投稿タイプまたは固定ページ

どちらでも作れる場合でも、運用しやすい方を選びます。

カスタムタクソノミーとは

タクソノミーは、投稿を分類する仕組みです。

標準では、カテゴリーやタグがあります。

カスタムタクソノミーを作ると、独自の分類を追加できます。

たとえば、制作実績に対して次のような分類を作れます。

  • 業種
  • 制作種別
  • 使用技術
  • エリア

カスタム投稿タイプとタクソノミーを組み合わせることで、管理画面と一覧ページが整理しやすくなります。

register_post_type

カスタム投稿タイプは、register_post_type()で登録できます。

カスタム投稿タイプ
function my_theme_register_post_types() {
    register_post_type( 'works', array(
        'label'        => '制作実績',
        'public'       => true,
        'has_archive'  => true,
        'menu_position'=> 5,
        'supports'     => array( 'title', 'editor', 'thumbnail' ),
        'rewrite'      => array( 'slug' => 'works' ),
    ) );
}
add_action( 'init', 'my_theme_register_post_types' );

これで、管理画面に「制作実績」が追加されます。

supportsでは、タイトル、本文、アイキャッチなど、使う機能を指定します。

register_taxonomy

カスタムタクソノミーは、register_taxonomy()で登録できます。

カスタムタクソノミー
function my_theme_register_taxonomies() {
    register_taxonomy( 'works_category', 'works', array(
        'label'        => '実績カテゴリー',
        'public'       => true,
        'hierarchical' => true,
        'rewrite'      => array( 'slug' => 'works-category' ),
    ) );
}
add_action( 'init', 'my_theme_register_taxonomies' );

hierarchicaltrueにすると、カテゴリーのような階層分類になります。

falseにすると、タグのような分類になります。

テーマかプラグインか

カスタム投稿タイプは、テーマに書くことも、プラグインに分けることもできます。

実務では、サイトのデータ構造に関わるものはプラグインに分けることがあります。

テーマを変更しても、制作実績やスタッフの投稿タイプを残したいからです。

書く場所向いている内容
テーマ表示に強く依存する小さな設定
プラグインサイトのデータ構造として残したい設定

この判断は案件によって変わります。

最初はテーマに書いて学び、実務では分離も検討します。

テンプレート

カスタム投稿タイプには、専用テンプレートを作れます。

制作実績の投稿タイプがworksなら、次のようなファイル名を使います。

worksのテンプレート
archive-works.php
single-works.php
taxonomy-works_category.php

一覧はarchive-works.php、詳細はsingle-works.phpです。

分類一覧はtaxonomy-works_category.phpで表示できます。

この章のまとめ

  • カスタム投稿タイプは、独自のコンテンツ種別を追加する仕組み
  • 制作実績、スタッフ、FAQなどはカスタム投稿タイプに向いている
  • カスタムタクソノミーは、独自の分類を追加する仕組み
  • register_post_type()register_taxonomy()で登録できる
  • サイト固有のデータ構造は、プラグインに分けることも検討する