导语:叶子开发一个主题代码的时候,发现文章中总是会在某个特定的代码后面加上
。在浏览器中显示出来的时候,就会平白无故多出一行,导致对出现排版问题问题。wpautop函数导致现在的问题
当我们在主题的single.php使用the_content()函数输出文章内容的时候,这个函数会在输入文章内容的时候调用wpautop函数,wpautop功能将文章内容中的换行符转换成html标签
。
这样转换出来的文章内容,会更加符合搜索引擎的规范。
如果你不希望文章内容在输出的时候使用wpautop函数,那么你可以使用以下的方法:
在single.php中使用get_the_content()输出文章内容:echo get_the_content();
在functions.php中使用remove_filter( ‘the_content’, ‘wpautop’ );
问题的表现
叶子把出现问题的代码贴上来,wpautop函数导致叶子写的主题代码输出的时候,在网页源代码后面出现一个
,这个在浏览器中会自动补全为上面的源代码是可以通过浏览器的查看源代码的菜单打开,这样你就能看到当前网页的源代码。
叶子期望的代码为:
注意:
代码是为让内容中的图片延时加载后,又能够让图片被搜索引擎抓取到而设置的,实现代码如下:add_filter('the_content', 'lazyload');
function lazyload($content)
{
//默认图片
$loadimg_url = '//placehold.it/300x150&text=wordpressleaf' );
if (!is_feed() || !is_robots) {
$content = preg_replace('//i', "
}
return $content;
}
这段代码放在functions.php中就能实现突破的延时加载,当然,你还需要在前端使用jQuery来延时加载。
解决问题
要解决叶子遇到的在后面多出一个
的问题,其实很简单,就是在single.php中使用get_the_content()来输出内容,然后使用str_replace替换掉,下面是具体实现代码。/*the_content();*/
echo str_replace('
','',get_the_content());上面的代码,先屏蔽掉the_content()函数,或者直接删除the_content()。然后直接用echo get_the_content()来输出文章内容。
在使用上面的代码后,叶子的主题也就得到了想要的结果:
结束
你学会了吗?可以在下面留言来与叶子讨论。