这是我在 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 的 Isotope masonry 页面,基于 Roots 启动主题。
在谷歌搜索后,我发现唯一可能的线索可能是某种[简码]问题?
在这个问题上绞尽脑汁!
最佳答案
the_title
和 the_excerpt
不返回标题,它们直接将其回显到输出缓冲区。这就是标题出现在
标签之前的原因
您可以使用以下变体进行快速破解
echo '<h2>';the_title();echo '</h2>';
echo '<h2>';the_title();echo '</h2>';
甚至更好
the_title("<h2>","</h2>") //directly. No echo required
关于php 错误地回显标签外的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23146676/