get_post_meta()の値が複数ある場合


またも第三引数「false」にお世話になることになりました。

get_post_meta($post->ID,’カスタムフィールドの取得したい値のキーの名前、$key’,true or false)

だいたいの場合、
get_post_meta($post->ID,’standard’,true)
とするわけですが、この項目に相当する値が複数取得して、
そして出力しなければいけない場合もあります。

そこで行うのが
get_post_meta($post->ID,’standard’,false)
とする方法。

第三引数をfalseにすることで、複数の値を配列として受け取ることができるんです!

さらに、その出力方法ですが、よくWordPressのフォーラムを見ていると
出てくるのが、DBから直接取り出す方法。
ですが、なんだかとっても面倒。
(自分、その方法で長々とソースコード書いてました)

で、方法としては二つ。

1.implode関数を使う。
この関数を使うと、配列をひとつひとつ文字列として出力することができます。
しかも、文字列の間にどんな文字を入れるかを指定することもできます。
$datalist = get_post_meta($post->ID,Standard,false);
if($datalist != ”) {
implode(‘<br />’,$datalist);
}
こうしてあげると、文字列の間に<br />が出力されて、改行されます☆
※implode関数は、配列の数値が空だとエラーを起こすらしいので、
条件分岐で
空の場合を省くようにします。

2.foreachでまわす。
配列を出力する方法で代表的なのは、むしろこちらですね。
(実はforeachは苦手であまり使ったことが無い…)
書くとしたら…こんな感じかな??
$datalist = get_post_meta($post->ID,Standard,false);
foreach ($datalist as $value ) {
echo <li>’.$value.'</li>’;
}

この方法で、どちらを使っても出力できました☆
前後に文字列が必要な場合は、echoで出力できるforeachのほうがいいですね。

Special Thanks オノコンピュータ 小野様
参考にさせていただきました:
WordPress備忘ログ」様
PHPのコミュニティ ポータルサイト「PHPプロ!」」様

get_post_meta()の値が複数ある場合」への3件のフィードバック

  1. ピンバック: WordBench Nagoya 2月 | くまみむめも

  2. ピンバック: UserAgentごとに読み込むソースコードを変える | くまみむめも

  3. ピンバック: WordPressの固定ページでカスタムフィールドを使って関連記事を表示させる方法

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

This blog is kept spam free by WP-SpamFree.