如何解决the_field函数将值放置在错误的位置
所以我试图获取我创建的自定义字段的值。基本上,我想通过wordpress中的自定义字段使用动态给定的ID填充模板中的gravityforms短代码(在循环内)。我正在使用acf get_field函数,但我不太了解发生了什么问题。在这种情况下,重力形式的ID为“ 3”。
这是我的方法:
echo do_shortcode('[gravityforms id="'.the_field('gf-for-events').'" title="false" description="false" ajax="true"]');
现在我得到的结果是:
3
Oops! We Could not locate your form.
获取输出的ID确实是正确的ID,但是由于某种原因,它输出的位置错误。为了进一步测试,我尝试了以下方法:
$test = the_field('gf-for-events');
echo ('[gravityforms id="'.$test.'" title="false" description="false" ajax="true"]');
这是输出:
3[gravityforms id="" title="false" description="false" ajax="true"]
我知道它与the_field函数有关,因为对ID进行硬编码时,它以正确的方式输出。
$test = 3;
echo ('[gravityforms id="'.$test.'" title="false" description="false" ajax="true"]');
[gravityforms id="3" title="false" description="false" ajax="true"]
我想了解这里出了什么问题,我想念什么吗?我可以使用另一种get_field()方法吗?
解决方法
the_field()
方法将立即输出该值。改为使用get_field()
时,它将作为返回值返回,因此您可以将其分配给变量。
然后,您可以在代码中的任何位置使用该值:
$value = get_field('gf-for-events');
if ( $value ) {
echo '[gravityforms id="' . $value . '" title="false" description="false" ajax="true"]';
}
这应该输出(如果返回值确实为3
):
[gravityforms id="3" title="false" description="false" ajax="true"]
分别在the_field()
和get_field()
的文档中对此进行了描述:
the_field()::显示特定字段的值。
get_field():返回特定字段的值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。