Wordpress (ACF)函数不返回值


Wordpress (ACF) function does not return a value

我能够通过变量解析数据,没有问题,但是我的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的输入是"Test",那么HTML输出变成:

Test<h3></h3>

我的期望输出是:

<h3>Test</h3>

但是我没有得到这些结果。

似乎什么都不能包装,我最近经常遇到这个问题。我的思维方式有问题吗?

当你使用wordpress/(ACF)函数时,总是检查它们是显示还是返回值。

功能,用于显示的值:

<>以前函数displayX () {"数据";}之前

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

displayX();  //output: data

注意:函数不会返回数据。但是,即使它没有显式的返回语句,也不会返回数据,它仍然会返回一些东西(NULL)。

函数,其中返回值:

<>以前函数returnX () {返回"数据";}之前

如果你想调用这个函数,你需要一个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. 打印
  4. 3.1函数,其中显示的值:
    displayX();
    

    注意:这段代码输出data

    3.2函数,其中返回值:
    returnX();
    

    注意:这段代码不会显示任何东西。


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

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

您应该使用get_field()echo,因为the_field()已经响应元字段:

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

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