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():返回特定字段的值。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...