WEBLOG
WordPress > プラグイン
Create:
Update:
弊社で標準インストールするプラグイン「Advanced Custom Fields PRO」。
このプラグインには、関数(グローバルで使用できる関数)があります。
その最も代表的なものとして、get_field、get_fields、get_field_object、get_fields_object があります。
いずれもカスタムフィールドの値を postmeta から取得する関数です。
これは、WordPressのコンセプトなので仕方がないのですが、プラグインごとの独自関数が多くなると、システムの管理が煩雑になります。
例えば、異なるプラグイン が plugin_method()
という関数を使用できるようにしている場合、functions_exist()
でエラーを回避しても、どちらかの関数は意図しない動作になります。
システムの歴史として、この関数衝突を防ぐために Class 、Class内でprotected やprivate、namespace で名前空間、と改善されてきました。
※ 一部語弊はありますが。
弊社では、関数を把握し、極力少ない状態でシステム管理しています。
※ $acf はカスタムフィールドの name値(表示ラベル=labelではありません) です。
$val = get_field($acf, $post_id);
返り値は「入力欄のタイプ」と「設定画面 返り値設定」のによって異なります。
結論から言いますとこれだけを使用しています。
$val = get_fields($post_id);
$post_id に紐づくカスタムフィールドの値を一括で取得。
「なんと便利!」と思いきや、意外と使えません。使いません。
カスタムフィールドを運営中に追加しますと、そこから先、更新したものは意図したタイプで返ってきますが、過去の分は配列など空文字が返りますので思わぬエラーが出たりします。
$val = get_field_object($acf, $post_id);
返り値は、各フィールドに関する情報を一括取得。「入力欄のタイプ」によって異なります。
「返り値設定に関わらず、全情報を取得できる!」と思いきや「設定画面 返り値設定」で指定してた値が $val[‘value’] に入り、画像で返り値=URLにすると thumbnail も medium も返ってきません。
add_filter した際のデバッグには役立ちます。
$val = get_fields_object($post_id);
上記二つの理由から、利用しません。割愛します。