WordPress开发:如何在PHP输出阶段为用户ID前置user_适配ACF?
解决WordPress中ACF当前用户字段输出的拼接问题
嘿,我明白你的需求了——既要正确输出当前用户的ACF字段,又不想改动$current_user变量(毕竟还要用在别的地方),其实只要在调用the_field的时候,把user_和用户ID正确拼接就行啦!
问题出在哪?
你原来的代码里,'user_$current_user->ID'是一个单引号包裹的字符串,PHP不会解析里面的变量,所以ACF收到的参数其实是字面量user_$current_user->ID,而不是你想要的user_2,这就导致字段无法正确输出。
正确的实现方式
我们只需要用PHP的字符串连接符.,把静态的user_和动态的用户ID变量拼接起来,这样既不会修改$current_user,又能生成ACF要求的格式:
<?php $current_user = wp_get_current_user(); // 用连接符拼接user_和用户ID,生成正确的参数格式 echo the_field('price_list', 'user_' . $current_user->ID); ?>
可选的健壮性优化
如果你想确保只有登录用户才显示这个字段,可以加个登录判断,避免未登录时出现错误:
<?php $current_user = wp_get_current_user(); if (is_user_logged_in()) { echo the_field('price_list', 'user_' . $current_user->ID); } ?>
这样就完美解决你的问题啦,$current_user变量原封不动,ACF也能拿到正确的用户标识符~
内容的提问来源于stack exchange,提问作者Tom Hayes
相关产品推荐
相关产品推荐

