如何在WordPress后台分类法选择列表中拼接显示ACF字段内容
WordPress后台分类法选择列表拼接ACF字段解决重名问题
我有一个存储城市名称的分类法,该分类法下设置了存储所属州的ACF字段。但编辑关联了该分类法的文章类型时,分类法选择列表中仅显示城市名称,会带来识别问题,比如美国至少有2个名为波特兰的城市,斯普林菲尔德等城市也存在同类重名情况。
请问是否可以通过挂载钩子的方式,在后台编辑文章类型时,让分类法标题旁同步显示对应的ACF字段内容?
我希望列表中显示为「Portland, ME」而非仅显示「Portland」,其余城市同理。但我需要将城市名和州名在字段中分开存储,因此无法直接将城市命名为带州名的格式。有没有人之前实现过类似功能?
我尝试过搜索和使用ACF扩展插件,但找到的结果大多是关于在分类法编辑页面新增列表列的方案,并非我需要的功能。我只需要在编辑文章时侧边栏的分类法模块中,实现分类标题和ACF字段的拼接展示即可。
实现更新
感谢社区用户的帮助,我已经实现了所需功能。最初使用is_admin判断不生效,因为分类列表是通过REST API异步加载的,因此我做了适配处理。该方案可能不是最严谨的安全实现方式,但函数本身无危害,不需要担心相关风险。最终可直接使用的代码如下:
if( current_user_can( 'manage_options' ) && strpos($_SERVER['REQUEST_URI'], "wp-json" ) == 1 ) { add_filter('get_term', 'change_term_name_at_admin', 10, 2); function change_term_name_at_admin($term, $taxonomy) { // 此处替换为你的自定义分类法别名 if ($taxonomy == 'markets') { $key_field_acf = "markets_" . $term->term_id; // 此处替换为你存储所属州的ACF字段名 $state_name = get_field( 'state', $key_field_acf ); if ($state_name != "") { $new_name = $term->name . ', ' . $state_name; $term->name = $new_name; } } return $term; } }
修改对应参数后即可实现分类选择列表中城市名+州名的拼接展示效果,完美解决重名识别问题。
内容的提问来源于stack exchange,提问作者Kai Qing
相关产品推荐
相关产品推荐

