かゆいところにもうちょっと頑張って手を伸ばしてみる連載【WordPress 極】では、
WordPress のニッチなカスタマイズを紹介します。
今回は、人気プラグイン Advanced Custom Fields(ACF)をより使いやすくカスタマイズ。
概要
ACFの無料版でも使えるフィールド投稿オブジェクト。
他の投稿タイプの記事と紐づけられて、記事の検索までできて便利ですよね。
でも・・・記事を選ぶ時に「記事タイトルだけじゃパッと見わからない」ってこと、ありませんか?
そういう時に便利なカスタマイズの紹介です。
フィルターフックで記事タイトルにカスタムフィールドを追記する
ACFの投稿オブジェクトのフィルターフック(”acf/fields/post_object/result/”)を使います。
公式リファレンス:

ACF | acf/fields/post_object/result
Filters the text displayed for each post in the Post Object field.
使用例1
/** * ACFの投稿検索のカスタマイズ * (投稿オブジェクトフィールドで、投稿タイトルの横にカスタムフィールド(meta_key)を追記) */ function my_acf_fields_post_object_result($title, $post){ if($meta_value = get_post_meta($post->ID, "meta_key", true)) { $title .= " – " . $meta_value; } return $title; } add_filter( "acf/fields/post_object/result", "my_acf_fields_post_object_result", 10, 2);
しかしこれでは、すべての投稿オブジェクトのフィールドで実行されてしまいます。
特定のフィールドで使う場合は、
フィルター “acf/fields/post_object/result/name={field_name}” を使います。
フィルター名の {field_name} を、ACFで設定したフィールド名に合わせて変更してください。
例えば冒頭の画面キャプチャの場合のフィールド名は related_post です。
使用例2: フィールド名 related_post の投稿オブジェクトでだけ使う場合
/** * ACFの投稿検索のカスタマイズ(投稿オブジェクトフィールドで、投稿タイトルの横にカスタムフィールドを追記) */ function my_acf_fields_post_object_result($title, $post){ if($meta_value = get_post_meta($post->ID, "meta_key", true)) { $title .= " – " . $meta_value; } return $title; } add_filter( "acf/fields/post_object/result/name=related_post", "my_acf_fields_post_object_result", 10, 2);
このフックを使えば、投稿タイトルの他にカスタムフィールドやタクソノミー名などいろんな情報を表示できます。記事を探す手がかりとなる情報を加えて、わかりやすくしましょう。
弊社 Arrival QUALITY では、Web制作だけではなく「WordPressの更新がしづらい。」「Blog運用で困っていることがある」「ECのセールの売上が伸び悩んでる」など運用についてもサポートできます。
お気軽にご相談ください。