- 2008 年 12 月 18 日 10:16 PM
- WordPress
[読了時間の目安:約 4 分]
カスタムフィールドに入力した値を出力するには、
<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
<?php the_meta(); ?>
<?php endwhile; endif; ?>
というテンプレートタグを使うのが最も基本的な方法です。
ただ、これだと入力したすべてのキーと値が一つの<ul>リストで出力されてしまい、使い勝手が良いとは言えません。
指定したキーの値を個別に出力できればなぁ……、と思っていろいろ調べた結果、実は別の関数を使えば簡単に出来ちゃうことが分かりました。
手元にある本のうち1冊にだけ載ってたような情報で、改めてググってみてもほとんど見つからず。
ってことは意外に知られていない方法なのかも。
(get_post_meta() 関数を使うのが本来の方法だというような気がしないでもないですが、より簡単に使える方が良いだろうということで)
post_custom() 関数を使う
指定したキーの値だけを出力するには、post_custom() を使います。
指定したキーに対して入力した値が1つだけの場合
post_custom() で取得できる値は文字列になります。
<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
<?php echo post_custom('key'); ?>
<?php endwhile; endif; ?>
取得した値(文字列)を echo で出力しています。
指定したキーに対して入力した値が複数ある場合
post_custom() で取得できる値はPHPの配列になります。
<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
<?php
$mywords = post_custom('key');
foreach ($mywords as $myword) {
echo $myword;
} ?>
<?php endwhile; endif; ?>
まず $mywords で配列を受けて、foreach 文で$myword に小分けにしながら echo で出力しています。
参考書籍
- 「Webプロフェッショナルのための黄金則 WordPressテンプレートタグ虎の巻」(エ・ビスコム・テック・ラボ 著)
上記の基本形の他に、「キーと値をPHPで扱う」方法なども載っていますので、興味のある方はご一読を。
実用例が豊富だったり、各関数が取得するデータを具体的に書いてあったり、何かと便利で分かりやすい本です。
雑記
WordPress Codex 日本語版で「post_custom」を検索してもヒットしないのですが、まさか非推奨とかではないよなぁ……?
WordPress Codex 日本語版 – カスタムフィールドの使い方にも get_post_meta() 関数のことしか書いてないし。
謎。
- 次の記事: jQueryとprototype.jsを同時に使うには
- 前の記事: WordPress 2.7 日本語版リリース。
関連している(かもしれない)記事
Comments:0
Trackbacks:2
- Trackback URL for this entry
- http://blog.btmup.com/wordpress/custom-field-specify-key.html/trackback
- Listed below are links to weblogs that reference
- カスタムフィールドの指定したキーの値だけ表示する方法 from btmup Blog
- pingback from カスタムフィールド未入力時に項目ごとOFFもしくは表示する方法 | 30女未経験からのWEBプログラミング 14-09-09 (火) 16:01
-
[…] したキーに対して入力した値が1つだけの場合 参考サイト→カスタムフィールドの指定したキーの値だけ表示する方法 […]
- pingback from カスタムフィールド未入力時に項目ごとOFFもしくは表示する方法 | pochiplus 15-05-27 (水) 14:37
-
[…] したキーに対して入力した値が1つだけの場合 参考サイト→カスタムフィールドの指定したキーの値だけ表示する方法 […]