TOP BLOG ACFの投稿オブジェクトの post_title をカスタマイズする【WordPress 極】
#WordPress
ACFの投稿オブジェクトの post_title をカスタマイズする【WordPress 極】
2023.12.19 Satoshi Yoshida

かゆいところにもうちょっと頑張って手を伸ばしてみる連載【WordPress 極】では、
WordPress のニッチなカスタマイズを紹介します。

今回は、人気プラグイン ACF(Advanced Custom Fields)をより使いやすくカスタマイズ。

ACFの無料版でも使えるフィールド投稿オブジェクト。
他の投稿タイプの記事と紐づけられて、記事の検索までできて便利ですよね。

ACFの設定画面の例

でも・・・記事を選ぶ時に「記事タイトルだけじゃパッと見わからない」ってこと、ありませんか?

そういう時に便利なカスタマイズの紹介です。

フィルターフックで記事タイトルにカスタムフィールドを追記する

ACFの投稿オブジェクトのフィルターフック(”acf/fields/post_object/result/”)を使います。

公式リファレンス:

使用例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のセールの売上が伸び悩んでる」など運用についてもサポートできます。
お気軽にご相談ください。

CATEGORY
TAG
ARCHIVE