You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ACF中添加选择分类法(而非分类术语)的字段?

使用ACF实现选择分类法本身的字段需求

ACF默认的「Taxonomy」字段确实只能选择分类术语,但完全可以实现让用户选择分类法本身的需求,推荐用「Select」或「Radio Button」字段配合自定义代码动态生成选项,以下是具体实现步骤:

方法:动态生成分类法选项

  1. 在ACF字段组里新建一个「Select」(或单选按钮)类型的字段,在「选项」设置中选择「动态选项」→「自定义函数」,然后填写函数名(比如acf_get_all_taxonomies)。

  2. 把下面的代码添加到你的WordPress主题functions.php文件中(或者自定义插件里):

function acf_get_all_taxonomies() {
    // 获取所有公开的分类法,可根据需求调整参数
    $all_taxonomies = get_taxonomies( array(
        'public' => true, // 仅获取公开可见的分类法
    ), 'objects' );

    $taxonomy_options = array();
    // 添加默认提示选项
    $taxonomy_options[''] = '请选择分类法';

    foreach ( $all_taxonomies as $taxonomy ) {
        // 可在这里排除不需要的分类法,比如内置的标签(post_tag)
        // if ( $taxonomy->name === 'post_tag' ) continue;
        
        // 用分类法的别名(slug)作为值,显示名称用分类法的友好名称
        $taxonomy_options[ $taxonomy->name ] = $taxonomy->labels->name;
    }

    return $taxonomy_options;
}
  1. 保存字段组后,在编辑页面就能看到所有公开分类法的下拉选项了。

调用字段值

在前端或模板中,用get_field('你的字段键')就能获取选中的分类法slug,后续如果需要获取该分类法的详细信息,可以用get_taxonomy()函数:

$selected_taxonomy_slug = get_field('your_taxonomy_select_field');
if ( $selected_taxonomy_slug ) {
    $taxonomy_obj = get_taxonomy( $selected_taxonomy_slug );
    // 输出分类法名称
    echo $taxonomy_obj->labels->name;
}

如果需要更灵活的控制(比如只显示自定义分类法),可以修改get_taxonomies的参数,比如添加'_builtin' => false来排除WordPress内置的分类法(如category、post_tag)。

内容的提问来源于stack exchange,提问作者Chester Black

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 16:23:20