WordPressの便利機能 カスタムフィールドの使い方

テーマ

wpphp_customfield

今日はWordPressに搭載されている、記事に自由な値を登録できる機能を紹介します。
その名もカスタムフィールドです。

自由な値とはなんぞやですが…簡単に言うと、
カスタムフィールドは記事に対してタイトル・本文以外に自由な入力フォームを作れるのです。
その名の通りカスタムなフィールド、使い方によってはとっても便利なのです。
特にCMSサイトを作る際には必須ではないでしょうか。

今回はこのカスタムフィールドについて簡単に紹介をします。

投稿画面にカスタムフィールドを表示してみる

まずは記事の投稿画面を見てみましょう。
記事本文や抜粋フォームの下にカスタムフィールドが表示されています。
もしない場合は、画面右上の「表示オプション」をクリックして、

wpphp_customfield_sample01

その中から「カスタムフィールド」にチェックを入れましょう。
それでもない場合は画面内のどこかに埋もれているはずなので探します。

wpphp_customfield_sample02

ありました。

カスタムフィールドを登録してみる

さっそく入力してみましょう。
カスタムフィールドは「名前」と「値」の2つで形成されています。
なので、登録の際はこの2つを入力してあげることが必須です。

まずは「新規追加」を選びます。すると「名前」に入力フォームが出てきます。

wpphp_customfield_sample03

入力してみました。
「カスタムフィールドを追加する」をクリックした後、記事を保存することで完了です。

登録したカスタムフィールドを表示してみる

カスタムフィールドの「名前」は器、「値」は中身の役割を果たしています。
表示するときは「名前」を指定してあげることで、「値」を取り出すことができます。
取り出す際は get_post_meta() を記事ループ内で使います。

get_post_meta() 記事の指定された名前のカスタムフィールド値を取得します。
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

	<?php echo get_post_meta($post->ID, '天気', true); ?>
	<?php the_content(); ?>

<?php endwhile; endif; ?>

記事のループ内に記事ID、表示したいカスタムフィールドの名前を指定します。

晴れ

表示できました!

同じ名前に複数登録されたカスタムフィールドを表示してみる

カスタムフィールドは同じ名前に複数の値を登録することもできます。
一つの名前に複数入力する必要のあるカスタムフィールドでは、第三引数はfalseにして
表示のときは以下のようなループを使いましょう。

<?php

// 第三引数をfalseにして配列を取得
$field = get_post_meta($post->ID, '天気', false);

// カスタムフィールドが登録されているかチェック
if ( !empty($field) ):
	// ループでカスタムフィールドの値を取り出す
	foreach ( $field as $str ):
		echo $str. '<br />';
	endforeach;
endif;

?>
晴れ
ときどき曇り

表示できました!

区切り文字を改行ではなくカンマ(, )にしたいときはこんな感じに。

<?php

$field = get_post_meta($post->ID, '天気', false);

if ( !empty($field) ):
	// 配列を「, 」で結合させる
	echo join(', ', $field);
endif;

?>
晴れ, ときどき曇り

例では天気として登録しましたが、商品の値段・店舗の住所など他にも
アイデア次第でいろいろな使い方ができる機能なので、ぜひ活用していってください。

テーマ

関連記事