Advanced Custom Fields(ACF)插件用户下拉框无选项无法选择故障
排查与解决步骤
1. 优先修复代码语法错误
你提供的PHP代码存在数组语法错误:fields 数组内的重复器(repeater)字段配置结束后缺少英文逗号,同时fields数组整体结束后也缺少分隔逗号,会导致整段代码无法正常解析,字段组注册失败,这是最常见的触发原因。
修复后的完整代码如下:
acf_add_local_field_group(array ( 'key' => 'group_557ad1ef2b8a1', 'title' => 'Authors', 'fields' => array ( array ( 'key' => 'field_557ad24ba99e5', 'label' => 'Featured', 'name' => 'featured_authors', 'type' => 'repeater', 'instructions' => 'Choose a maximum of 6 authors', 'required' => 0, 'conditional_logic' => 0, 'wrapper' => array ( 'width' => '', 'class' => '', 'id' => '', ), 'min' => '', 'max' => 6, 'layout' => 'table', 'button_label' => 'Add Author', 'sub_fields' => array ( array ( 'key' => 'field_5582bc82f8419', 'label' => 'Author', 'name' => 'featured_authors_author', 'type' => 'user', 'instructions' => '', 'required' => 1, 'conditional_logic' => 0, 'wrapper' => array ( 'width' => '', 'class' => '', 'id' => '', ), 'role' => array(), 'allow_null' => 0, 'multiple' => 0, ), ), ), // 此处为新增的逗号,修复重复器字段的数组语法 ), // 此处为新增的逗号,修复fields数组的分隔语法 'menu_order' => 0, 'position' => 'normal', 'style' => 'seamless', 'label_placement' => 'top', 'instruction_placement' => 'label', 'hide_on_screen' => array ( 0 => 'the_content', 1 => 'author', 2 => 'featured_image', ), ));
2. 修正User字段的角色参数配置
你当前配置的role参数值为空字符串,在ACF 5.4.5版本中存在兼容问题,无法正常匹配所有用户角色,会导致查询结果为空。可以按需求修改为以下两种配置:
- 要显示所有角色的用户:将
'role' => ''修改为'role' => array() - 仅显示指定角色的用户:传入角色别名数组,比如
'role' => array('administrator', 'editor', 'author')
3. 基础环境排查
- 确认WordPress后台「用户」列表中存在有效用户,如果是多站点配置,需要确认目标用户已经被分配到当前站点
- 打开浏览器开发者工具的控制台标签,刷新页面后查看是否有JS报错,排除ACF资源加载失败、其他插件JS冲突的问题
- 临时禁用除ACF外的所有插件,切换到默认WordPress主题,测试下拉框是否恢复正常,排查第三方扩展的冲突
4. 日志排查
开启WordPress调试模式,查看PHP错误日志是否有相关报错,确认是否存在权限限制、用户查询被其他钩子过滤的问题。
内容的提问来源于stack exchange,提问作者Happy Coder
相关产品推荐
相关产品推荐

