WordPressでカスタム分類(タクソノミー)を追加する

WordPressでは、カテゴリーやタグのように記事を分類する機能があります。この分類は自分で新しい分類を追加することができ、「カスタム分類」(カスタムタクソノミー)と呼ばれています。 「投稿」でカテゴリーやタグ以外の分類が欲しいときや、自分で追加した投稿タイプ(カスタム投稿タイプ)に分類を付けたい時などに利用できます。 ## プラグインを使う方法 カスタム分類(カテゴリーやタグのようなもの)を追加できるプラグインはいくつか公開されていますが、カスタム投稿タイプ(投稿や固定ページのようなもの)を追加する「Custom Post Type UI」は、カスタム分類にも対応しています。 「プラグイン」→「新規追加」から「Custom Post Type UI」を検索してインストールします。 有効化すると管理画面に「CPT UI」をいう項目が追加されます。その中に「タクソノミーの追加と編集」という子項目があるのでクリックします。 「タクソノミーの追加と編集」画面は、「基本設定」「追加ラベル」「設定」の3つに分かれています。必ず設定が必要なのは「基本設定」の各項目です。 基本設定の画面では4つの項目を設定します。 1つめの欄がデータベースに保存される分類名です。初期状態ではスラッグにも利用され、カスタム分類を表示する時のURLなどに使われます。他の分類名と重複しないように注意して設定します。半角の英小文字・数字・アンダーバーが利用可能です。最大32文字まで可能ですが、初期状態ではURLにも利用されるのであまり長くないほうが良いかもしれません。 2番目と3番目の欄が、管理画面などで使われる名前です。漢字・ひらがなもOKですのでわかりやすい名前で良いでしょう。英語の場合などで複数形と単数形で表示を変えられるように欄が分かれていますが、日本語の場合は両方同じ名前で良いでしょう。 4番目の欄が、このカスタム分類を利用する投稿タイプの選択です。WordPressに最初から用意されている「投稿」「固定ページ」「メディア」のほか、あとから追加された「カスタム投稿タイプ」も表示されます。チェックマークは2つ以上入れることができるので、複数の投稿タイプで同じカスタム分類を使うことができます。 最後に「タクソノミーの追加」ボタンを押して基本設定は終わりです。 追加できたら、「CPT UI」の「登録済み」メニューを確認してみましょう。ここに今登録したカスタム分類が追加されています。「○○○を編集」のリンクをクリックすれば編集画面に戻ります。 残りの「追加ラベル」「設定」は必要に応じて設定します。「追加ラベル」はそのままの状態で大丈夫なことが多いと思います。「設定」も一画面に入りきらないほど多くの項目がありますが、だいたいデフォルトの設定で便利に使えます。時々変更している項目には、次のようなものがあります。 「階層」の項目は、親子関係を持つかどうかを決定します。デフォルトのFalseだとタグのように親子関係のない分類になり、Trueにするとカテゴリーのように分類に親子関係をつけられるようになります。 「管理画面でカラムを表示」をTrueにすると、管理画面の投稿一覧でカテゴリーやタグの欄が表示されているのと同じように、管理画面でカスタム分類の欄を表示させることができます。 「クイック編集パネル/一括編集パネルに表示」をTrueにすると、管理画面で使えるクイック編集の画面や一括操作の編集画面に、カスタム分類の入力欄が追加されます。 変更をしたら、一番下の「タクソノミーを保存」ボタンをクリックします。 ## register_taxonomy関数を利用する方法 WordPressでは、initアクションからregister_taxonomy関数を呼び出してカスタム分類(カスタムタクソノミー)を追加することができます。
register_taxonomy( $taxonomy, $object_type, $args );
$taxonomy
データベースに保存される分類名。最大32文字までで、半角の英小文字・数字・アンダーバーが利用可能です。
$object_type
この分類を利用する投稿タイプ。投稿はpost、固定ページはpage、メディア(添付ファイル)はattachmentです。カスタム投稿タイプも指定できます。配列にして複数指定もできます。
$args
登録する分類の各種オプション。
register_taxonomyは$argsでいろいろなオプションを設定できますが、一つ一つ書いていくのは大変かもしれません。上で紹介している「Custom Post Type UI」はコード作成機能を持っているので、それを利用する方法があります。 管理画面の「CPT UI」から「Tools」メニューを開くと「コードを取得」タブがあり、その中にコードが表示されています。 functions.phpにコピー&ペーストしたら、プラグインは停止させてください。