WordPress特集 - カスタム分類
公開日:2021年6月10日
情報を分類するためにWordPressでは投稿にカテゴリーとタグを設定することができます。それら標準で用意されている分類とは別に独自の分類(カスタム分類 or カスタムタクソノミー)を定義できます。
カテゴリーとタグ
まず標準で用意されているカテゴリーとタグについてですが、一番大きな違いは階層構造を持つかどうかです。カテゴリーは階層構造を持ちますが、タグは持ちません。タグはすべて同レベルになります。
例えて言うなら、カテゴリーはフォルダのイメージで、タグは付箋のイメージです。カテゴリーには「属する」、タグには「関連する」という感覚になります。
カテゴリーもタグも1つの投稿にそれぞれ複数設定することができます。ただカテゴリーは1つだけ設定し、タグは必要なだけ設定するケースが多いです。
投稿には必ずカテゴリーを設定しなければなりませんが、タグは任意です。カテゴリーなど最初から意識になく、投稿を追加した時もカテゴリーを設定した覚えはないということもありますが、その場合は初期設定で1つだけ登録されている「未分類」というカテゴリーに投稿は割り当てられます。
カスタム分類とは
情報(コンテンツ)の種類が多くなってくると、カテゴリーとタグだけでは対応できなくなります。例えば標準のカテゴリーはニュースを分類するために使っていたとしたら、会社の商品を分類するためには違う分類方法が欲しくなります。
そこで「商品分類」というカスタム分類(カスタムタクソノミー)を定義し、商品を分類するために使います。カスタム分類はカテゴリーのように階層構造を持つこともできます。また定義したからといって、必ず設定しなければならないというわけではなく、タグのように使うこともできます。
またカスタム分類はカスタム投稿タイプとセットで使う場合が多いです。情報の種類が多くなるということは通常の投稿だけでは足りなくなりますので、カスタム投稿タイプを作成します。そして作成したカスタム投稿タイプを分類するためにカスタム分類も同時に定義します。
カスタム分類には「ターム(term)」を登録する必要があります。タームはカスタム分類の中にある項目です。
例えばスーパーで使うような「商品分類」というカスタム分類があるとしたら、タームには「野菜」「肉類」「惣菜」などを登録します。階層構造を持つカスタム分類はタームを階層化することになります。
カスタム分類の作成方法
functions.phpにコードを記述する
オーソドックスな方法としては、functions.php に関数 register_taxonomy を使ってコードを記述することです。
Code Reference | register_taxonomy
プラグインを利用する
プラグイン「Custom Post Type UI」を使うと、管理画面から簡単にカスタム分類の作成ができます。
このプラグインはカスタム投稿タイプの作成にも使えますので、両方を同時に作成する場合は非常に便利です。
カスタム分類のテンプレート
「taxonomy-$分類名.php」というカスタム分類名で使用される専用のテンプレートがあります。またそれより優先される「taxonomy-$分類名-$ターム名.php」というテンプレートもあります。
カテゴリーやタグと共通のテンプレートは、「archive.php」になります。
優先順位は以下になります。
- taxonomy-$分類名-$ターム名.php
- taxonomy-$分類名.php
- taxonomy.php
- archive.php
- index.php
カスタム分類のURL
通常はURLの中にカスタム分類名とターム名を含みます。ただしタームが階層化されていてもURLには反映されません。
https://ドメイン名/カスタム分類名/ターム名/
投稿個別のURLは、カスタム分類に属しているかどうかは関係なく、パーマリンク設定に従ったURLとなります。
«次の特集記事» カスタムフィールド
«前の特集記事» カスタム投稿タイプ
スポンサーリンク