ハシウェブ

Web制作、プログラミングに関する情報を発信するブログ

【WordPress】カスタム分類(カスタムタクソノミー)の作成方法

【WordPress】カスタム分類(カスタムタクソノミー)の作成方法

カスタム投稿タイプと同様、企業、店舗サイトではよく使うカスタム分類を紹介します。
カスタム分類、カスタムタクソノミーという言葉の意味がよくわからないと思いますが、独自につくれるカテゴリという理解で大丈夫です。
wordpressのカスタマイズに慣れてこないとタクソノミーという意味を理解するのが難しいので、カテゴリと言ってしまうことが多いです。

目次
  1. サンプルコード
  2. 解説
  3. メリット、デメリット
    1. メリット
    2. デメリット
  4. まとめ

サンプルコード

例えば、スタッフ紹介のカスタム投稿に得意分野のカテゴリをつくる場合、このサンプルコードをfunctions.phpに貼り付けるだけで、通常の「カテゴリ」とは違う「得意分野」というカテゴリができあがります。

管理画面の左サイドバーを確認してカスタム投稿「スタッフ紹介」の下に「得意分野」ができていれば成功です。

/* カスタム分類(カスタムタクソノミー)
* ---------------------------------------- */
register_taxonomy(
	'specialty', //タクソノミ名
	'staff', //タクソノミを使う投稿タイプ名
	array(
		'rewrite' => array( true, 'with_front' => false ),
		'label' => '得意分野', //ラベル名
		'labels' => array(
		'menu_name' => '得意分野' //管理画面のメニュー名
	),
	'public' => true, //公開状態
	'show_in_rest' => true,
	'hierarchical' => true, //カテゴリのように扱う場合はtrue
	'has_archive' => true,
	'query_var' => true,
	'show_admin_column' => true, //投稿タイプのテーブルにタクソノミーのカラムを生成
	)
);
管理画面

解説

  • 「specialty」 … 最初にタクソノミのスラッグを入力します。
  • 「staff」 … 次にタクソノミを使う投稿タイプ名を設定します。通常の投稿の場合は'post'です。
  • 'menu_name''label' … ここに表示させる名前を入力します。

タクソノミのスラッグを指定するときが少し悩むことが多いです。
このスラッグがURLに入るため、例の「specialty」でも若干違和感がでます。

例えば、美容院のスタッフ紹介で、得意分野をカテゴリとしてカットとパーマの一覧を作る場合です。

カスタム投稿とカスタム分類のスラッグが同じだといけないので、URLを見た感じでは直感的にスタッフ紹介のページとはわかりにくくなってしまいます。
無理矢理、スタッフ紹介とわかりやすくするにはカスタム投稿のスラッグを「staffs」「staff-category」とかにすると「スタッフ紹介」だとわかりやすくなります。
このあたりは好みかもしれません。

//カスタム投稿
https://hsmt-web.com/staff

//カスタム分類一覧
https://hsmt-web.com/specialty/cut
https://hsmt-web.com/specialty/perm

//カスタム分類名をわかりやすくすると
https://hsmt-web.com/staffs/cut
https://hsmt-web.com/staff-category/perm

メリット、デメリット

メリット

検索機能をつくりやすい
スタッフ紹介の例だと検索機能をつくることはないと思いますが、商品等を紹介するちょっとしたデータベースを作る場合、検索機能がつくりやすくなります。
管理画面がわかりやすくなりユーザビリティがよくなる
カテゴリ(category)だけで、意味の異なる分類を増やしていくと複雑になってきます。
こういったことがカスタム分類を増やすことですっきりし、ユーザーを混乱させることが少なくできます。

デメリット

カテゴリとの違いを理解しないとカスタマイズが難しい
通常の投稿で使うカテゴリ(category)と、このカスタム分類では分岐処理のプログラムをするときに別の命令をしないといけないです。
カテゴリ、タクソノミー、タームの相違点、共通点を理解するまでにとても時間がかかります。
プログラムが難しくなることがある
データベース的にカスタム投稿、カスタム分類をつくる場合、最初にしっかり設計しておかないとすごく複雑なプログラムをしないといけなくなってきます。スラッグ等を整理して、できるだけif分を使わないようにしていったほうがいいです。(プログラム全般にいえることですが)

まとめ

カスタムタクソノミーは慣れるとそんなに難しくないですが、慣れるまでは言葉の意味から

ブログ等シンプルなサイトでは使うことがないと思いますが、データベースのようなサイトを作成するときには比較的つくりやすくなります。
複雑なデータベースが必要な場合は、wordpressでできるレベルの検索機能なのか十分検討したほうがいいと思います。