最小構成で理解する「カスタム投稿タイプ」と「タクソノミー」(WordPress)
WordPressのコードを見ていると、register_post_type() や register_taxonomy() なんて書いてあって、カスタム投稿タイプやタクソノミーなんてコメントが…
カスタム投稿はなんとなく想像できるけど、タクソノミーって何なん?
ということで、その辺りについて調べてみました。
最小構成のコードでお送りいたします。
カスタム投稿タイプとは?
WordPressにはもともと「投稿(post)」という機能があります。これは主にブログ記事を書くためのものです。
でも、ブログ以外にも「イベント情報をまとめたい」「レシピを投稿したい」など、用途に応じて投稿タイプを分けたいことがあります。
そんなときに使うのが カスタム投稿タイプ(Custom Post Type) です。
コード例(最小構成)
function Event_init() {
register_post_type('event', [
'label' => 'Events',
'public' => true,
'has_archive' => true,
'rewrite' => ['slug' => 'event'],
'show_in_rest' => true,
'supports' => ['title', 'editor', 'thumbnail'],
]);
}
add_action('init', 'Event_init');
| パラメータ | 説明 |
|---|---|
label |
管理画面のメニュー名(通常は複数形) |
public |
公開される投稿タイプかどうか(trueで管理画面にも表示される) |
has_archive |
アーカイブページ(一覧ページ)を有効にするか |
rewrite |
パーマリンクのスラッグを指定(例:example.com/event/) |
show_in_rest |
ブロックエディタ(Gutenberg)対応 |
supports |
投稿画面で使う機能(タイトル・本文・アイキャッチなど) |
💡 menu_position => 5 を追加すると、「投稿」のすぐ下に表示されるようになるのでおすすめです。
その他いろいろ設定できるので、詳しくは 公式ドキュメント をご覧あれ。
タクソノミーとは?
タクソノミー(taxonomy)は、WordPressでコンテンツを分類するための仕組みです。
WordPressにはデフォルトで以下の2つのタクソノミーがあります:
-
category:階層あり(例:朝食、ランチ、ディナー) -
post_tag:階層なし(例:チョコレート、生姜、鶏肉)
さらに、独自の分類法(カスタムタクソノミー)を作ることもできます。
コード例(最小構成)
function register_event_taxonomy() {
register_taxonomy('event_category', 'event', [
'label' => 'Event Category',
'hierarchical' => true,
]);
}
add_action('init', 'register_event_taxonomy');
| パラメータ | 説明 |
|---|---|
event_category |
タクソノミーのスラッグ(識別名) |
event |
紐づける投稿タイプ(ここでは event) |
label |
管理画面で表示される名前 |
hierarchical |
階層あり(カテゴリー型)にするかどうか |
↑のコード例では、画像のようなEvent Categoryが登録されました。
💡 補足:投稿した記事が表示されないときは?
💡 補足:追加した投稿タイプの一覧ページはどうやって見るの?
カスタム投稿タイプ event を作成すると、WordPressは自動的に /event/ という一覧ページを生成します。
投稿した記事の一覧は、example.com/event/のような形になっているはずです。
もしアドレスがわからない場合は、投稿したカスタム投稿を「表示」してみてください。ブラウザのアドレス欄に表示されるURLから、一覧ページのパスを推測できます。
※ テーマによっては一覧ページ用のテンプレートが必要になることもあります(archive-event.phpなど)
wordpressってPHPで動いてるとは言うけどwordpressやねぇ。
とは言え、書くだけで独自の投稿タイプやカテゴリーが簡単に追加できちゃうのは便利なもんです。
ほんとに書くだけなので、カスタムしたことない人も良かったらやってみてね。

