WordPressでカスタムフィールドに入力した値を改行付きでエスケープして表示する方法

例えば、下の画像のように「今日行う予定の仕事リスト」をカスタムフィールドを使って保存していたとします。

カスタムフィールドに仕事リストを保存

esccustompost00

WordPressでカスタムフィールドの値を取得するには、「get_post_meta」を使うとできます。取得した値を表示させるには、echoなどを使って、下のようにすればOKです。

カスタムフィールドの値を表示

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

それで、このままでは改行は反映されずに表示されます。なので、改行文字の前に改行タグを挿入する「nl2br」を使います。

改行を反映させたままカスタムフィールドの値を表示

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

さらに、カスタムフィールドの値はエスケープ処理をする必要があります。

参考リンク

エスケープしましょう。

改行反映+エスケープして値を表示

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

という感じで、「esc_html」や「esc_attr」を使って出力すればOKです。

2015/03/14追記

カスタムフィールドの値を取得する方法は「get_post_meta」の他にもあることを知りましたので、あわせてご参考ください。

著者:bouya Imamura