サイトアイコン Naoko Takano

WordPress のカスタムフィールド・投稿タイプ・タクソノミーを使い分けよう!

12月25日まで毎日ブログをつないでいく WordPress Advent Calendar、7日目担当マクラケン直子 (@naokomc) です。なつき(@Stocker_jp)さんの人気記事「Croppyの作り方」に引き継いでいただきました!ドキドキ。

カスタムフィールドとカスタムタクソノミーについてはなつきさんの記事でも触れられていますが、WordPress で使える便利な拡張機能として、

といったものがあります。どれもこれもカスタムカスタムとうるさいですが、名前を見ただけでは違いがよく分からない…ですよね。これらについて意外と知られていないところもあると思うので、それぞれどういう時に使うのか、どうやって使うのかという全体像を説明してみます。


目次


使い方のちがい

例えば、レシピサイトを作るとします。レシピのページを通常の「固定ページ」の階層化で作る(= 親子ページを作る)こともできますが、そうするとカテゴリーやタグはつけられません。代わりにカスタム投稿タイプ、カスタムタクソノミー、カスタムフィールドを組み合わせてみるとしましょう。

カスタム投稿タイプを使えば、「投稿(post)」「固定ページ(page)」のような、投稿(記事)のグループを作れます。例えば「レシピ(recipe)」というカスタム投稿タイプを作り、デフォルトのブログ投稿や個別ページとは独立して管理できます。

カスタムタクソノミーで、通常の投稿につけられる「カテゴリー」「タグ」のような、分類のグループを追加して作れます。例えば、レシピのみに適用したい分類として「タイプ」というタクソノミーを作り、その中の項目に「和食」「洋食」「中華」などを追加するとします。カテゴリーとタグは新着ニュースなど通常の投稿のために別にしておいて、レシピ用の分類を作ったほうがわかりやすいですよね。

カスタム投稿タイプとタクソノミーを使ったサイトメニュー例

こんなかんじ。

そして、カスタムフィールドを使えば、投稿や固定ページなどの入力画面で任意の属性と値を追加できるようになります。例えば「カロリー」というフィールドを作成し投稿者に「500」などの値を入力してもらうことで、カロリーをテーマの指定した場所に任意のスタイルで表示できたりします。カロリーといった値の場合、小刻みに異なる事が多く、タグみたいにグループ化する必要はないのでカスタムフィールドを使います。

カスタムフィールドボックスで「カロリー」を記入

それぞれのメリット

投稿のタグ・カテゴリーや固定ページではなくカスタム投稿タイプとカスタムタクソノミーを使うメリットは、ひとことで言うと「入力と出力をより細かくコントロールできる」ということになります。具体的には、

などといったことです。さらにカスタムフィールドを組み合わせることによって、そのコントロールを向上できます。

使い方の基本

「カスタム投稿タイプ」「カスタムタクソノミー」は、まずはじめにそれらを新規登録(定義)するというステップが必要になります。その方法としては、

と、いくつかあります。要するに、デフォルトインストールの WordPress 管理画面を探しても、これらの「カスタム何とか」は見つかりません。テーマファイルかプラグイン内から登録しないと使わないと呼び出せない、と覚えてください。登録には、register_post_type()register_taxnomy() 関数を使います。

「レシピ」カスタム投稿タイプの入力画面例。

一方、「カスタムフィールド」は、デフォルトの状態でも投稿画面の記入ボックスから入力することができますが、それだけでは投稿表示には影響しません。出力用のコードを使ったり、カスタムクエリの際に一致する値を指定できます。

いずれも管理画面から操作したい場合にはこういったプラグインを使うのも便利かもしれません。

※ カスタム投稿タイプについては、先日アドベントカレンダー5日目担当の確認さん (@horike37) がプラグイン内での使い方に触れて、実装例やデータ側からのメリットも書かれていました。そちらもご覧ください

使いどころの具体例

これらをどう組み合わせて使うか、サイトによって答えは色々あると思うのですが、具体的なものがあったほうがわかりやすいと思うのでレシピサイトを例としてあげてみます。

例えばこういう情報にもカスタムタクソノミーを使うと、表示・検索条件として指定するのに使えます。

さらに、同じサイトにレシピ以外の種類のコンテンツを追加したいなら、新たなカスタム投稿タイプを追加することになるでしょう。食材メーカーの製品と連動したレシピサイトなら、「製品」投稿タイプが必要になるかもしれませんし、お菓子やさんがレシピを公開しているなら全国に多数ある店舗を「店舗」投稿タイプで入力し、地域や店舗の形態をカスタムタクソノミーで分類、ということも考えられます。


かなり端折っていますが(それでもけっこう長めになりましたが…)あくまで違いを比べるためということで、詳しく掘り下げていくきっかけになればと思います。コンテンツを整理して運用しやすいサイトを作るために、WordPress のカスタムフィールド・カスタム投稿タイプ・カスタムタクソノミーを活用してみてください!

明日は @Ghichi さんでーす。

モバイルバージョンを終了