WordPress - カスタムフィールド活用術 | Technolog.jp - ICTウェブマガジン

WordPress – カスタムフィールド活用術

  • 2009/09/17
  • カテゴリー:CMS

個人的な見解ですが、普段、WordPressをブログとして使用していると「カスタムフィールド」の必要性を感じることがありません。しかし、CMSとしてユーザに開放する場合、要件に応じて独自の入力欄を用意しなければならないケースに遭遇します。ここで重宝するのが「カスタムフィールド」です。

オフィシャルサイトでマニュアルが掲載されているのですが、正直、PHP初心者には分かり辛いと思いますので、補足解説させていただきます。

カスタムフィールド値の格納先

カスタムフィールドの値は、データベースの「postmeta」テーブル内に格納され、同テーブルは以下のカラムから構成されています。

  • meta_id
  • post_id
  • meta_key
  • meta_value

ここで注目したいのは「meta_key」および「meta_value」です。カスタムフィールドを定義する際、フィールド名(アルファベット)を指定しますが、この値が「meta_key」に入ります。そして、投稿側で入力した実値は「meta_value」に格納されます。

カスタムフィールド関連プラグイン

Custom Field Template」や「More Fields」はカスタムフィールドを使用する上でよく利用されますが、上記同様、値は全て「postmeta」テーブルの所定の場所に格納されます。

カスタムフィールドの呼び出し

Custom Field Template」ではショートコードが用意されているので、投稿やページ内であれば簡単に呼び出すことができますが、テーマ側ではPHPを使用する必要があります。仮にデータベース内で以下のようなデータが格納されていたとしましょう。

  • meta_id = 1
  • post_id = 10
  • meta_key = store
  • meta_value = 東京都

この時、「東京都」を取得するのであれば、以下のように入力します。

<? echo get_post_meta(10, store, true); ?>

さらにこれをテーマのループ内で呼び出すのであれば、以下を使用します。

<?php echo get_post_meta($post->ID, store, true); ?>

「$post->ID」は、各投稿およびページのIDを取得してくれます。

投稿やページでもExec-PHPを入れることでPHPが実行可能になりますので、ショートコードではなく、PHPを覚えていた方が汎用的だと思います。

WordPressおよびPHP初心者の方にご参考にしていただければと思います。