0

I am trying to display a field, but it shows the value fine, but OUTSIDE of the tags?!??!

echo '<h2>'. the_field('where') .'</h2>';

Output =

"London"
<h2></h2>

Should be =

<h2>London</h2>
4

2 回答 2

4

因为你有这样的功能:

function  the_field($text){
 echo $text;
}
echo '<h3>'. the_field('where') .'</h3>';

将您的功能更改为:

function  the_field($text){
 return $text;
}
echo '<h3>'. the_field('where') .'</h3>';

为什么?因为 PHP 在打印回显输出之前执行该函数。

于 2013-07-30T11:30:31.443 回答
0

用这个:

<h2><?php the_field('where'); ?></h2>

解释:

由于工作方式,您的代码具有输出echo。它首先生成整个字符串(运行函数),然后呈现输出。因此,如果该函数the_field有输出,它将生成您所看到的。

基本上你的代码相当于:

$title = '<h3>'. the_field('where') .'</h3>';
echo $title;

例子:

function test() {
    echo '1';
    return '2';
}
echo 'PRE - ' . test() . ' - POST';

结果如下:

$ php test.php
1PRE - 2 - POST
于 2013-07-30T11:38:01.973 回答