更改WordPress自动生成摘要的方式

更改WordPress自动生成摘要的方式,第1张

更改WordPress自动生成摘要的方式

搜索或列出档案时,WordPress会在列表中显示文章摘要(按时间和类别)。本来我觉得这样不好,就把列表中summary的显示改为显示列表中的所有帖子。用了一段时间,发现很不好。

首先列表会变得很臃肿,失去了列表的本身作用——方便用户寻找真正想要看的帖子,其次,在搜索引擎抓取页面的时候,把那些列表页面也抓了过去,但随着帖子的不断增多,列表的更新远快于搜索引擎缓存的更新,用户使用搜索引擎进来以后,在列表中就很难找到目标了。

这样在列表中只显示摘要的优势就体现出来了,首先页面很清爽,用户可以清楚的找到要查看的目标,然后搜索引擎抓取内容的时候,会更多的关注页面的Permalink,用户也就会通过搜索直达目标帖子,方便了用户。

打开WordPress的wp-includes\functions-formatting.php,找到其中的functionwp_trim_excerpt(aboutline741),将如下代码

复制代码代码如下:
$excerpt_length=55;
$words=explode('',$text,$excerpt_length+1);
if(count($words)>$excerpt_length){
array_pop($words);
array_push($words,'[...]');
$text=implode('',$words);
}

更改为

复制代码代码如下:
$excerpt_length=3;
$words=explode("\n",$text,$excerpt_length+1);
if(count($words)>$excerpt_length){
array_pop($words);
array_push($words,'<p/>......<ahref="'.get_permalink($post->ID).'">[阅读全文]</a>');
$text=implode("\n",$words);
}

就可以了,WordPress默认的生成摘要是用空格来判断的,就是取到55个空格结束,这适用于西方采用空格作为词间隔的语言,但中文是不分词的,所以我使用读取3行的方式,取前3行,对哪种语言都是适用的。

Update@2007-02-09
升级到WordPress2.1以后,这个修改的地点变为wp-includes/formatting.php,第780行左右。

Update@2007-02-26
编写了一个插件,不用再手工修改代码了。

Update@2009-08-25
Betty全面总结了几种中文摘要方式,形成了一个综合的适合中文的摘要插件,并且提交到了WordPress官网,带有简单的配置后台,很不错。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/772659.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存