php错误地回应标签外的内容

时间:2014-04-18 02:54:03

标签: php jquery html css wordpress

这是我在StackOverflow上的第一篇文章,感谢社区成为如此优秀的资源!

我在WordPress模板中有一些PHP代码,如下所示:

echo '<div class="thumbnail">'; echo the_post_thumbnail(); echo '</div>';
echo '<h2>'. the_title() .'</h2>';
echo '<h2>Testing echo</h2>';
echo '<div>'. the_excerpt() .'</div>';

正确解析第一行,the_post_thumbnail()代码中包含<div>个内容

第二行解析不正确,the_title()标记前面有<h2>,因此未解析为<h2>标题。

正确解析第三行,作为<h2>标题。

第四行再次被错误地解析,the_excerpt()标记前面有<div>个内容,因此未被解析为<div>

相关的查看源,为便于阅读而简化:

<div class="thumbnail"><img src="myimage.jpg"></div>
My title<h2></h2>
<h2>Testing echo</h2>
<p>My excerpt</p><div></div>

有问题的项目是使用jQuery的同位素砌体页面,基于Roots启动主题。 在谷歌搜索唯一可能的线索后,我发现它可能是某种[短码]问题? 抓住我的脑袋!

4 个答案:

答案 0 :(得分:4)

the_titlethe_excerpt不返回标题,它们直接将其回显到输出缓冲区。这就是标题出现在&lt; h2&gt;之前的原因。标签 您可以使用以下变体进行快速破解

echo '<h2>';the_title();echo '</h2>';

甚至更好

the_title("<h2>","</h2>") //directly. No echo required

答案 1 :(得分:2)

您的代码需要这两种方法:

  • the_title()
  • the_except()

要返回一个字符串,以便它可以回显。

然而,他们没有返回字符串,他们返回null或者可能是空字符串。他们所做的是直接回应内容。

要解决此问题,请执行以下操作:

echo '<div>';
the_excerpt();
echo '</div>;

答案 2 :(得分:1)

多数民众赞成正常! :)&#34; _&#34;前缀隐式意味着将自动为您完成回声,您应该使用get_the_title()代替,当您想要控制通过更细粒度控制回应的内容时。

有关详细信息,请参阅此链接:Wordpress API

答案 3 :(得分:0)

看起来您想要控制标题格式。您可以通过过滤器OR ...

来实现这一点

$post->post_title

以上是直接访问帖子标题。这将返回一个字符串。

使用你的安全带:

<div class="thumbnail"><img src="myimage.jpg"></div>
My title<h2></h2>
<h2><?php echo $post->post_title; ?></h2>
<p>My excerpt</p><div></div>