Wordpress(ACF)函数不返回值

时间:2015-10-06 17:21:25

标签: php wordpress function return-value advanced-custom-fields

我能够通过变量解析数据没问题,但我的echo的HTML输出没有正确包装。

<?
    if( get_field('pre_video_set_label_name') ) {
        echo "<h3>" . the_field('pre_video_set_label_name') . "</h3>";
    } else {
        echo "<h3>Post-Event Video</h3>";
    }
?>

如果我对pre_video_set_label_name的输入是&#34;测试&#34;然后HTML输出变为:

Test<h3></h3>

我的预期输出是:

<h3>Test</h3>

但我没有得到这些结果。

似乎没有什么东西可以包装,我最近经常遇到这个问题。我的思维方式是否存在错误?

2 个答案:

答案 0 :(得分:3)

使用wordpress /(ACF)功能时,请务必检查显示返回值。

功能,显示值:

function displayX(){
    echo "data";
}

如果您想要调用此功能,赢了需要echo来显示数据,只需要调用它,例如

displayX();  //output: data

注意:该功能不会返回数据。但即使它没有明确的退货声明也不会返回数据,it still will return something (NULL)

功能,返回值:

function returnX(){
    return "data";
}

如果你想调用这个函数,你需要一个echo来显示数据,只需要调用它,例如

echo returnX();  //output: data

注意:此功能将返回数据,并且不会自行显示。

不同的行为

当您使用显示或返回值的函数时,您会注意到一些差异。

  1. 分配

    1.1功能,显示值:

    $variable = displayX();
    

    注意: $variable,将被分配NULL,而上方的行将输出data

    1.2功能,返回值:

    $variable = returnX();
    

    注意: $variable,将被分配data上面的行 输出任何内容。

  2. 级联

    2.1功能,显示值:

    echo "string start " . displayX() . " string end";
    

    注意:您将在此处连接NULL,因为此函数将返回此值。在您看到连接字符串之前,函数首先显示data

    2.2函数,返回值:

    $variable = returnX();
    

    注意:您将在此处连接data,因为此函数将返回此值。在您看到连接字符串之前,函数不会显示任何内容。

  3. 打印

    3.1功能,显示值:

    displayX();
    

    注意:此代码输出data

    3.2功能,返回值:

    returnX();
    

    注意:此代码不会显示任何内容。

  4. 因此,在您当前的示例中,您使用the_field()显示数据。但是如果你想连接它,你需要数据返回,意味着使用get_filed(),这只会返回数据。

    还有一种简单的方法可以检查函数返回的内容。只需执行:var_dump(functionCall());,您将看到函数返回的内容。

答案 1 :(得分:1)

您应该将get_field()echo一起使用,因为the_field()已经回应了meta字段:

echo "<h3>" . get_field('pre_video_set_label_name') . "</h3>";

get_field()返回元值,而不是回显它。