函数的作用是:将值放在错误的位置。
所以我试图获取我创建的一个定制字段的值。基本上,我希望通过WordPress中的自定义字段,用动态给定的ID填充模板中的重力表单短码(在循环内)。我正在使用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确实是正确的,但由于某种原因,它被输出到错误的位置。为了进一步测试这一点,我尝试了这个:
$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"]
我知道这与_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()
的文档中也分别进行了说明:
_field():显示特定字段的值。
get_field():返回特定字段的值。
相关文章