WordPressでカスタムタクソノミーを使う方法と活用例|独自の分類を追加して管理を効率化!

WordPressでは、投稿に「カテゴリー」や「タグ」といった分類機能が用意されています。
これらは「タクソノミー(taxonomy)」と呼ばれる仕組みですが、実は自分だけのタクソノミーを作成することも可能です。
たとえば、商品に「ブランド」や「ジャンル」、実績に「業種」や「エリア」などを分類したいとき、カスタムタクソノミーを使うことで管理と表示がぐっとしやすくなります。
この記事では、functions.phpでカスタムタクソノミーを追加する方法と、その活用例をわかりやすく紹介します。
Contents
カスタムタクソノミーとは?
カスタムタクソノミーとは、WordPressに標準搭載されている「カテゴリー」や「タグ」以外に、独自の分類方法を追加できる機能です。
用途に応じて「階層あり(カテゴリー型)」または「階層なし(タグ型)」として使い分けることができます。
例 | タクソノミー名 | 階層 | 用途 |
---|---|---|---|
ブランド | brand | あり | 商品をブランドで分類したい場合 |
地域 | area | あり | 実績を都道府県別に分類 |
特徴 | feature | なし | 商品の特徴をタグのように分類 |
カスタムタクソノミーの作成方法(functions.php使用)
基本コード(カテゴリー型)
function create_custom_taxonomy() {
register_taxonomy('brand', 'news', [
'label' => 'ブランド',
'hierarchical' => true, // trueでカテゴリー型
'public' => true,
'show_ui' => true,
'show_in_rest' => true, // ブロックエディタ対応
'rewrite' => ['slug' => 'brand'],
]);
}
add_action('init', 'create_custom_taxonomy');
ポイント解説
'brand'
:タクソノミーのスラッグ(識別子)'product'
:適用する投稿タイプ(例:カスタム投稿タイプproductに追加)'hierarchical' => true
:カテゴリーのように階層化可能'show_in_rest' => true
:Gutenbergブロックエディタ対応
タグ型にしたい場合
'hierarchical' => false
に変更すれば、タグのように階層なしで使えます。
管理画面での確認と分類の設定
コードを保存し、WordPressの管理画面を開くと「ブランド」などのメニューが表示されます。
ここからタクソノミーの項目(例:Nike、adidasなど)を自由に追加・編集できます。
投稿作成画面では、指定した投稿タイプに分類ボックスが表示され、チェックで選択可能になります。
カスタムタクソノミーの表示方法
タクソノミーのリンクを表示する
投稿や一覧で、その投稿が属するタクソノミー名を表示したい場合:
<?php
$terms = get_the_terms(get_the_ID(), 'brand');
if ($terms && !is_wp_error($terms)) {
foreach ($terms as $term) {
echo '<a href="' . get_term_link($term) . '">' . esc_html($term->name) . '</a>';
}
}
?>
活用例:カスタム投稿タイプ × カスタムタクソノミー
例:商品紹介サイトの場合
- 投稿タイプ:
product
(商品) - タクソノミー1:
brand
(ブランド)→ カテゴリー型 - タクソノミー2:
feature
(特徴)→ タグ型
利点:
- 管理画面で商品を柔軟に分類できる
- ブランド別・特徴別の一覧ページを自動生成できる
/brand/nike/
など
注意点・補足情報
- パーマリンク設定を保存し直さないと、タクソノミーのURLが404になることがあります。
- スラッグ(識別子)は英小文字で命名し、予約語(post, tag, pageなど)は避けましょう。
- ブロックエディタに表示されない場合は show_in_rest => true を確認してください。
まとめ
カスタムタクソノミーを使うことで、WordPressサイトの分類と表示の自由度が大きく広がります。
特にカスタム投稿タイプと組み合わせることで、管理画面が直感的に使いやすくなり、訪問者にとっても見やすい設計が可能になります。