WordPressのカスタムフィールドのデータ取得と表示いろいろ

WordPressのカスタムフィールドに入力したデータを取得する方法と表示する方法です。データを取得するにはいくつか方法がありますので、分かる範囲で書き出してみました。(カスタムフィールドに値があるかないかで表示を分ける条件分岐も追加しました。)

1. get_post_meta() でデータを取得して表示する

パラメータ

<?php $meta_values = get_post_meta($post_id, $key, $single); ?>

$post_id
データを取得する投稿のIDを指定します。表示中の投稿を指定するなら $post->ID を指定する。

$key
表示したいカスタムフィールドに入れた名前(日本語で大丈夫)

$single
trueかfalseを指定。falseで配列でデータを出力する。trueで指定されたフィールドの”値”の1つを文字列で出力。

使用例

下のようにテンプレートファイルの表示したい場所へ記入します。

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

例えばカスタムフィールドに ”名前”→天気 ”値”→曇り時々雪でした。 と入力します。
「名前」→天気「値」→曇り時々雪でした。と入力
下のような表示になります。
表示結果

2. get_post_custom でデータを取得して表示する

この関数はカスタムフィールドのすべての情報を配列で取得します。

パラメータ

<?php $custom_fields = get_post_custom($post_id); ?>

$post_id
データを取得する投稿のIDを指定します。なにも指定しなくてもデフォルトで現在の投稿IDが入ります。

使用例

「 ”名前”→天気 ”値”→曇り時々雪でした。 」と「 ”名前”→天気 ”値”→その後晴れた! 」と複数入力し、それを一覧で表示するには、下のように記入します。

<?php 
 $custom_fields = get_post_custom();  // 指定した投稿のすべてのカスタムフィールド情報を取得
 $my_custom_field = $custom_fields['天気']; // '天気' というキーを持つカスタムフィールドの値を取得
 foreach ( $my_custom_field as $key => $value )
   echo $value . "<br />"; 
?>

↓このような表示になります。
表示結果

”名前|値”と表示するには、下のようにテンプレートファイルの表示したい場所へ記入します。

<?php $fields=get_post_custom(); 
foreach($fields as $name => $value) {
	if(!(preg_match("/^_/", $name)) && $name!== '' ) {
		echo '<p>';
		echo $name;
		echo '|';
		echo $value[0];
		echo '</p>';
	}
} ?>

3. the_meta() でデータを取得して表示する

カスタムフィールドで入力した名前と値を、”名前:値”という形で表示します。簡単に表示ができます。

このタグをテンプレートファイルに記入します。

<?php the_meta(); ?>

↓このように簡単に表示できます。
表示結果

4. カスタムフィールドに値があるかないかで処理を分ける条件分岐

カスタムフィールドに値がある時だけ処理や表示をしたい場合は、テンプレートファイルへ以下のように記入します。

<?php
$custom_fields = get_post_meta( $post->ID , 'フィールド名' , true );
if(empty( $custom_fields ) === false){ ?>
	カスタムフィールドが入ってるときの処理
<?php } ?>	 

カスタムフィールドに値がある時とない時とで処理や表示を変えたい場合は以下のように記入します。

<?php 
$custom_fields = get_post_meta( $post->ID , 'フィールド名' , true );
if(empty( $custom_fields ) === false){ ?>
	カスタムフィールドが入ってるときの処理
<?php } else { ?>	
	カスタムフィールドが入ってないときの処理
<?php } ?>

Related Article

    関連する記事はありません。

3 Comments & Tracbacks

Leave a Comment

Emailは公開されません。*は必須項目です。


*


Categorys

Tags

CSS3 ダッシュボード ヘッダー トラブル コードサンプル コンテンツ スライドショー jQueryプラグイン php 引っ越し 素材 お知らせ JavaScript Facebook CSS カテゴリー 投稿タイプ IE HTML5 Shareボタン seo レスポンシブ Photoshop タクソノミー ナビゲーション カスタムメニュー Git Macアプリ サイドバー WPセキュリティ SVG iTunes PHPリファレンス API WP使い方 query_posts データベース get_posts() 条件分岐 コメント function RSS スマートフォン Sass/Compass さくらVPS