解决 wp 首页无法显示摘要而显示全文的方法

不知道什么时候(可能是某次升级),首页就乱套了,原因很简单,以前显示文章摘要的地方,现在把全文都显示出来了,即使是官方默认的模板也不行。

如图:


这样的话,页面就非常乱了。有的文章很短,有的文章很长,而且把文章全文都显示出来,而且还带有图片,使得页面非常不协调。

我查找官方的模板手册,寻找输出文章的函数,一个个尝试,也没有用。后来我不停的换模板,但是除了 wpbus 的 D4 模板之外,其他模板都不行,包括官方的。D4 模板显示图:

这样就美观多了,还是 wpbus 的模板写的质量高啊,代码考虑到方方面面了。但是我不喜欢用他们的模板。太大太过于臃肿,而且为了防止盗取代码,还写的很复杂,很多文件,导致执行效率比较低。特别是网速慢的时候,刚刚打开的时候,页面是乱的,过会才居中正常。于是,就看看他们的代码是怎么写的,把代码引用一下就好了。

打开 D4 模板,顺着模板文件找,果然,老是用 include 包含过来包含过去的,扰乱分析。不过我还是很快分析出了用于显示这个的代码。废话不多说,贴出这句代码。

<?php echo mb_strimwidth(strip_tags(apply_filters(‘the_content’,\$post->post_content)), 0, 230,”…”); ?>
可能是我 php 自学的太烂,没见过这几个函数,于是便在网上搜了一下这几个函数的功能。

1,apply_filter() 这个函数是一个过滤函数,用于过滤数据。一般是对前台的模板函数进行操作的。

2,strip_tags() 这个函数用于剥去 HTML、XML 以及 PHP 的标签,经过这个函数的数据,里面的标签就没了。这样呢,就把文章内容整理了,把那些特殊的格式以及图片什么的去除了。这样显示的就是纯文字。

3,mb_strimwidth() 这个函数是用来截取置顶长度的字符的。使用方法:
mb_strimwidth(string $str,int $start,int $width[,string $trimmarker[,string $encoding]])
参数说明:
$str //指定字符串
$start //指定从何处开始截取
$width //截取文字的宽度
$trimmarker //超过\$width 数字后显示的字符串
通常用于截取字符整理版面用的。