WordPress下BuddyPress的bp_the_profile_field_name()等值比较失败问题
问题根因
BuddyPress 沿袭了 WordPress 生态的函数命名规则:
- 所有以
the_为前缀的函数逻辑是直接输出内容到页面,无有效字符串返回值,返回值通常为null或空字符串 - 所有以
get_为前缀的函数才会将内容作为字符串返回,不会主动输出到页面
你调用的 bp_the_profile_field_name() 属于前者:执行 echo bp_the_profile_field_name() 时你看到的 "Tags" 是函数自身输出的内容,而非 echo 打印的函数返回值,函数实际返回值为空。你拿空返回值和字符串 "Tags" 做相等判断,自然会匹配失败。
可以用以下代码验证返回值特性:
var_dump(bp_the_profile_field_name()); // 输出结果为:TagsNULL // 前面的Tags是函数主动打印的,后面的NULL是函数的返回值被var_dump打印的结果
修复方案
将判断逻辑中的函数替换为对应 get_ 前缀的取值函数即可:
if (bp_get_the_profile_field_name() == "Tags"){ echo "Yes, it's working"; } else { echo "Oh no.."; }
内容的提问来源于stack exchange,提问作者DoDr
相关产品推荐
相关产品推荐

