カスタムフィールドの呼び出し方

4時間くらいかかってしまった。。。やりたかったのは、よくあるECサイトの写真付き商品のリストを作るということ。上から順番に、写真、商品名、コピー、価格を表示させたかった。イメージはこんな感じ。

管理画面の「投稿」ページ内で<span class="copy">とかを付けて呼び出しを制御しようと思いましたが、いくら調べてもそれが出来なさそうで、WordPressフォーラムで聞いてみました。すると、いつもお世話になっているkzさんという方がヒントを!

copy, price はカスタムフィールドを使うと良いです。

ヒントを頂きました!!

というわけで、カスタムフィールドを勉強。公式サイトなど呼んでましたが全然できません。すると、こちらのサイト、technolog.jp様に素晴らしい解説が。ここを呼んで、カスタムフィールドとはいったい何なのかから大体把握できました。

カスタムフィールドに、例えば以下のような情報を入れていた場合に、

キー
copy The Best Camera Ever!!
Price $100.99

コピー部分を呼び出すには、テーマ内では、呼び出したい場所に

<?php echo get_post_meta(1, copy, true): ?>

と書くと、「The Best Camera Ever!!」という文字がブラウザにちゃんと表示されます。
WordPressループの中で呼び出したい場合はちょっと違って、

<?php echo get_post_meta($post->ID, copy, true); ?>

と書くことで、表示されます。これをindex.phpやarchive.php内の好きな場所(ただしループ内)に埋め込むと、商品を100個掲載しても同じように、ちゃんとその記事の価格やコピーを呼び出してくれます。
single.phpにも同じように書きこめば、もちろん表示されます。

single.php内とarchive.php内で同じクラスが指定されてしまうと思うので、上記のphpコード自体をスパンでくくって、CSSでデザイン指定してあげればOKになるはずです。まだやってないけど。