微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

the_field函数将值放置在错误的位置

如何解决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 举报,一经查实,本站将立刻删除。