いや知らなかった~。WordPressでカスタムフィールドの値を取得する方法は「get_post_meta」の他にもあった

WordPressでカスタムフィールドの値を取得する方法って、今まで「get_post_meta」を使う方法しか知らなかったんですが、他にもあることを知りました。

知ったきっかけはこちらの投稿

投稿内のコメント欄であの方に教えていただきました。ありがとうございます。

そろそろ、 $post->joblist みたいな書き方が定着してきてもいいと思うんだ。

(あの方より)

こんなやり方があるだと・・・!というわけで、さっそくやってみました。例えば、下の画像のように改行を反映させたまま表示させたいとします。

esccustompost00

今までの方法「get_post_meta」を使うと、下のように書けばOKです。

「get_post_meta」を使って表示する方法

<?php echo nl2br( esc_html( get_post_meta( $post->ID , 'joblist' , true ) ) ); ?>

次に、今回知った「$post->キー名」を使うと、下のように書けばOKです。

キー名を使って表示する方法

<?php echo nl2br( esc_html( $post->joblist ) ); ?>

というように、「$post->キー名」を使っても値を取得できますが、改行タグを反映させたい場合は「nl2br」を、エスケープも行う必要があるので「esc_html」「esc_attr」などを使うことには変わらないのですが、コードが短くなって見やすいなぁとは思いました。

ちなみに「$post」はグローバル変数で、現在の投稿情報を保持しています。「get_post_meta」を使う時に指定した第1引数「$post->ID」は、現在の投稿のIDが格納されています。

と、今のところ自分が理解したことはここまでです。新しいことを覚えたら、この記事に追記していこうと思っています。

著者:bouya Imamura