いろいろなプラグインなどもありますが、今日は、もともとある機能をどうやって使っていくのだろうということで基本編として書いています。
カスタムフィールドってなに??
カスタムフィールドとは、エントリーなどに対して付随情報(メタデータ)を追加することができる機能です。
例えば、ひとつの商品を紹介するエントリーに対して「値段・発売日・サイズ」などの情報をカスタムフィールドとして追加することで、商品情報のデータベースを作ることができます。
メタデータとは?
メタデータは「名前」と、その「値」の組み合わせからなっています。

- 名前・・・メタデータ要素の名称
- 値・・・その要素に対応する情報
投稿画面にカスタムフィールドを表示してみる
まずは記事の投稿画面へいきます。
画面右上の「表示オプション」をクリックして、

その中から「カスタムフィールド」にチェックを入れましょう。
カスタムフィールドを登録
まずは「新規追加」を選びます。すると入力フォームが出てきます。
入力し、「カスタムフィールドを追加する」をクリックした後、記事を保存することで完了です。
登録したカスタムフィールドを表示する
PostMeta 関数
関数 | 詳細 |
---|---|
get_post_custom() | 現在の記事に関連するメタデータの名前および値を取得。 |
get_post_custom_keys() | 現在の記事につけられたすべてのメタデータの名前をリストとして取得。 |
get_post_custom_values($key) | 現在の記事中にあるメタデータの値を取得。 |
get_post_meta($post_id, $key, $single = false) | $post_id と $key が必須で、$singleが TRUE に設定されている場合、配列ではなく、一つ目の結果のみをPHPで使用できるように返します。 |
ここからは

1つ目のカスタムフィールド
- 名前・・・今日の天気
- 値・・・晴れ
2つ目のカスタムフィールド
- 名前・・・今日の天気
- 値・・・雨
3つ目のカスタムフィールド
- 名前・・・今読んでいる本
- 値・・・星の王子様
が入力されていると仮定して記載します。
登録したカスタムフィールドを表示
記事のループ内に記事ID、表示したいカスタムフィールドの名前を指定します。
1 |
<?php echo get_post_meta($post->ID, '今日の天気', true); ?> |
出力結果は、
晴れ
となります。
同じ名前に複数登録されたカスタムフィールドを表示
カスタムフィールドは同じ名前に複数の値を登録することもできます。
第三引数が、TRUE
だと、1つ目のメタデータのみしか文字列で取得出来ないので、FALSE
を指定し、以下のように記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php // 第三引数をfalseにして配列を取得 $field = get_post_meta($post->ID, '今日の天気', false); // カスタムフィールドが登録されているかチェック if ( !empty($field) ): // ループでカスタムフィールドの値を取り出す foreach ( $field as $str ): echo $str. '<br />'; endforeach; endif; ?> |
出力結果は、
晴れ 雨
となります。
区切り文字を改行ではなくカンマ(, )にしたいときは、
1 2 3 4 5 6 7 8 9 10 |
<?php $field = get_post_meta($post->ID, '今日の天気', false); if ( !empty($field) ): // 配列を「, 」で結合させる echo join(', ', $field); endif; ?> |
出力結果は、
晴れ,雨
となります。
カスタムフィールド内でのショートコード実行表示
通常カスタムフィールド内でショートコードは実行できませんので、テンプレートファイルの記述を以下のようにします。
1 2 3 4 5 6 |
// カスタムフィールド内でショートコードを実行 <?php if(get_post_meta($post->ID, 'xxxx-①', true)): ?> <?php echo apply_filters('the_content', get_post_meta($post->ID, 'xxxx-①', true)); ?> <?php else : ?> xxxx-② <?php endif; ?> |
2行目と3行目のxxxx-①の箇所には取得したい値のキー名を記述します。
xxxx-②のところは、何もなかった場合の処理を記述します。
キーと値を出力する
キーと値を出力する簡単な方法は、the_meta()
を使用します。
1 |
<?php the_meta(); ?> |
この関数を利用すれば、次のような順不同リストを出力します。
1 2 3 4 |
<ul class='post-meta'> <li><span class='post-meta-key'>今読んでいる本: </span> 星の王子様</li> <li><span class='post-meta-key'>今日の天気:</span> 晴れ</li> </ul> |
WordPress3.5からのカスタムフィールド
WordPress3.5からカスタムフィールドの取得方法が変わったようです。
キュッっとすっきり書けるようです。
いろいろな使い方ができるカスタムフィールドなので、アイデア次第でコンテンツが楽しくなりそうです。
以上、簡単なまとめでした。
Pingback: そのうちサイト内検索をガンガンさせたいなと思ったら、WordPressのカスタムフィールドで構築しよう | 表参道と六本木と赤坂であーだこーだのんびり働いてる社長のブログ()