プラグインAdvanced custom fields(ACF)のacf/fields/taxonomy/resultフィルタの使用方法・解説

概要

acf/fields/taxonomy/resultフィルタは、Advanced Custom Fields(ACF)の分類フィールド内で使用されるテキストをカスタマイズするための強力な手段です。このフィルタを使用することで、分類用語の表示名やその他の情報を変更することが可能です。これは、特定の条件に応じて用語がどのように表示されるかを変更したい場合に非常に便利です。

このフィルタは、以下のような機能を実装する際によく使用されます:

  1. 分類用語の表示名にカスタムプレフィックスやサフィックスを追加する。
  2. 特定のユーザー権限に基づいて表示名を変更する。
  3. 用語のカウントを表示するためにカスタムテキストを追加する。
  4. 特定の条件に基づいて用語を二重化・カスタマイズする。
  5. 表示する用語リストのフィルタリングを行う。
  6. セマンティックな表示名に変更することで、SEO効果を高める。

構文

add_filter('acf/fields/taxonomy/result', 'my_acf_taxonomy_result_filter', 10, 4);

パラメータ

  • string $text : 現在の表示テキスト
  • object $term : 変更対象の用語オブジェクト
  • string $taxonomy : 分類のタクソノミー名
  • int $term_id : 用語のID

戻り値

  • 変更後のテキスト(string)

使用可能なバージョン

  • ACFバージョン:5.0以上
  • WordPressバージョン:4.0以上

サンプルコード

サンプルコード1: プレフィックスを追加

このサンプルでは、用語の表示名に「Category:」というプレフィックスを追加します。

add_filter('acf/fields/taxonomy/result', 'add_prefix_to_taxonomy_term', 10, 4);
function add_prefix_to_taxonomy_term($text, $term, $taxonomy, $term_id) {
    return 'Category: ' . $text;
}

サンプルコード2: 特定のユーザー権限による変更

このコードは、特定のユーザー権限を持つ場合に表示名を変更するものです。

add_filter('acf/fields/taxonomy/result', 'change_taxonomy_term_if_admin', 10, 4);
function change_taxonomy_term_if_admin($text, $term, $taxonomy, $term_id) {
    if (current_user_can('administrator')) {
        return '[Admin] ' . $text;
    }
    return $text;
}

サンプルコード3: 用語のカウントを追加

このサンプルでは、用語に関連する投稿数を表示名に追加します。

add_filter('acf/fields/taxonomy/result', 'add_post_count_to_term', 10, 4);
function add_post_count_to_term($text, $term, $taxonomy, $term_id) {
    $post_count = $term->count;
    return $text . ' (' . $post_count . ')';
}

サンプルコード4: カスタムロジックによるフィルタリング

このコードは、特定の条件に基づいたフィルタリングを行います。

add_filter('acf/fields/taxonomy/result', 'filter_taxonomy_terms', 10, 4);
function filter_taxonomy_terms($text, $term, $taxonomy, $term_id) {
    if ($term->slug === 'special-term') {
        return $text . ' - Special!';
    }
    return $text;
}

サンプルコード5: セマンティック変更

このサンプルでは、SEOを考慮して表示名を変換します。

add_filter('acf/fields/taxonomy/result', 'seo_friendly_taxonomy_term', 10, 4);
function seo_friendly_taxonomy_term($text, $term, $taxonomy, $term_id) {
    return str_replace(' ', '-', strtolower($text));
}

この関数のアクションでの使用可能性

アクション 使用可能
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

この関数について質問する


上の計算式の答えを入力してください