概要
acf/fields/post_object/result
フィルタは、Advanced Custom Fields (ACF) プラグインにおいて、投稿オブジェクトフィールドに関連する各投稿に表示されるテキストをカスタマイズするためのフィルタです。このフィルタを使用することで、ユーザーが選択した投稿の表示方法を柔軟に変更することができます。たとえば、リストの項目に追加情報を表示したり、読みやすさを向上させたりできます。
このフィルタがよく使われる機能には以下のようなものがあります:
1. 投稿オブジェクトのタイトルにカスタムフィールドの値を追加する。
2. 特定の条件に基づいて投稿の表示を変更する。
3. 投稿のアイコンや色を動的に変更する。
4. 投稿の公開日や著者をフォーマットして表示する。
5. 投稿のステータスに応じたメッセージを表示する。
6. 複数の投稿タイプにまたがるカスタム表示を作成する。
構文
add_filter('acf/fields/post_object/result', 'my_acf_post_object_result', 10, 4);
パラメータ
$text
(string): デフォルトの表示テキスト。$post
(WP_Post): 対象の投稿オブジェクト。$field
(array): ACFフィールドの設定。$post_id
(int): 現在の投稿ID。
戻り値
- (string): フィルタ処理を通った新しい表示テキスト。
ACFおよびWordPressのバージョン
- 使用可能なACFバージョン:5.0以上
- 使用可能なWordPressバージョン:4.0以上
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
-
投稿タイトルにカスタムフィールドを追加
function my_acf_post_object_result($text, $post, $field, $post_id) { $custom_field = get_field('custom_field', $post->ID); if ($custom_field) { $text .= ' - ' . esc_html($custom_field); } return $text; } add_filter('acf/fields/post_object/result', 'my_acf_post_object_result', 10, 4);
このサンプルコードは、投稿オブジェクトのタイトルにカスタムフィールドの値を追加しています。
-
投稿の公開日を表示
function custom_post_object_result($text, $post, $field, $post_id) { $date = get_the_date('Y/m/d', $post->ID); return $text . ' (' . $date . ')'; } add_filter('acf/fields/post_object/result', 'custom_post_object_result', 10, 4);
このサンプルコードは、投稿オブジェクトのタイトルの隣に投稿の公開日を表示します。
-
特定の条件に基づいて表示を変更
function filter_post_object_result($text, $post, $field, $post_id) { if ($post->post_status == 'draft') { $text .= ' [Draft]'; } return $text; } add_filter('acf/fields/post_object/result', 'filter_post_object_result', 10, 4);
このサンプルコードは、ドラフト状態の投稿に「[Draft]」というラベルを追加します。
-
特定の投稿タイプに異なる表示をする
function change_post_object_display($text, $post, $field, $post_id) { if ($post->post_type == 'page') { return '📄 ' . $text; } return $text; } add_filter('acf/fields/post_object/result', 'change_post_object_display', 10, 4);
このサンプルコードは、ページタイプの投稿にアイコンを追加して表示を変更します。
-
オブジェクトのアイコンを変更
function modify_post_object_icon($text, $post, $field, $post_id) { return '⭐ ' . $text; } add_filter('acf/fields/post_object/result', 'modify_post_object_icon', 10, 4);
このサンプルコードは、すべての投稿オブジェクトに星のアイコンを追加して表示します。