Advanced Custom Fieldsによるカスタムフィールドの出力 [基本編]

 2016.04.20  2017.10.31

Advanced Custom Fieldsの出力 基本編

WordPressでのサイト制作でもはや無くてはならないプラグイン「Advanced Custom Fields」(以下ACF)。 Wordpressのテンプレートタグや関数と同様、使わないとすぐ忘れてしまうので、ここでは出力に絞って使い方をまとめたいと思います。実際のお仕事では、カスタムフィールドの値をそのまま出力するだけではなく、カスタムフィールドの入力内容によって条件分岐をすることも多いので、条件分岐についても書いていきます。

ACFの出力に関する記事は以下のように3つに分けました。他にもフィールドはたくさんあるのですが、よく使うものだけまとめました。

このページでは、出力でよく使う2つの関数について説明します。この2つ以外にACFが用意している関数は、公式ページで確認できます。

フィールド内容を出力する

field_nameには「フィールド名」を入れます。

the_field()を使用する場合

get_field()を使用する場合

変数を使用する場合

the_field()はフィールド内の値を簡単に表示したい時に、 get_field()は一度変数に格納して使用したい時や、フィールド内に値があるかどうかで分岐をしたい時などに使います。 get_field()を使用時にカスタムフィールドに値がない場合は、「false」が返ってきます。

フィールドタイプが「テキスト、テキストエリア、数値、メール、パスワード」などの場合は、上記の書き方でOK! オプションで ページIDなども指定できます。

エスケープ処理について

カスタムフィールドでは入力した情報がそのまま出力されるので、特にサイト制作者以外のユーザーが使用する場合は、セキュリティ上エスケープ処理をしておいた方がよいでしょう。

esc_html()
HTMLタグの<>&"’をエンティティ化して適切に処理。
esc_attr()
esc_html()と同じだが、altなどの属性にはこちらを使う。
esc_url()
URLで不適切な文字を削除・エンティティ化する。http://から始まる完全なURLに対してのみ使用可能。

WordPressのエスケープ処理については、以下のページを参考にさせていただきました。

ACFを更に使いやすくするACF Pro

ACF Proは、次世代バージョンのACFとACFを更にパワーアップさせた高機能なアドオン(The Repeater Field、The Gallery Field、The Flexible Content Field、Clone field、Options Pages)がパッケージ化された有料プラグインです。便利な機能が多く搭載されているのでオススメです!

参考記事Advanced Custom Fieldsを更に使いやすく!ACF Proを選ぶ理由と機能紹介