更改WordPress自动生成摘要的方式
授权方式:署名,非商业用途,保持一致,转载时请务必以超链接(http://www.fwolf.com/blog/post/102)的形式标明文章原始出处和作者信息及本声明。WordPress在搜索或列Archives(按时间、按分类)的时候,在列表中是显示帖子摘要的。原来我觉得这样不好,就把列表中显示摘要改成了在列表中显示全部帖子,使用一段时间以后发现很不好。
首先列表会变得很臃肿,失去了列表的本身作用——方便用户寻找真正想要看的帖子,其次,在搜索引擎抓取页面的时候,把那些列表页面也抓了过去,但随着帖子的不断增多,列表的更新远快于搜索引擎缓存的更新,用户使用搜索引擎进来以后,在列表中就很难找到目标了。
这样在列表中只显示摘要的优势就体现出来了,首先页面很清爽,用户可以清楚的找到要查看的目标,然后搜索引擎抓取内容的时候,会更多的关注页面的Permalink,用户也就会通过搜索直达目标帖子,方便了用户。
打开WordPress的wp-includes\functions-formatting.php,找到其中的function wp_trim_excerpt(about line 741),将如下代码
$words = explode(’ ‘, $text, $excerpt_length + 1);
if (count($words) > $excerpt_length) {
array_pop($words);
array_push($words, ‘[...]‘);
$text = implode(’ ‘, $words);
}
更改为
$words = explode(”\n”, $text, $excerpt_length + 1);
if (count($words) > $excerpt_length) {
array_pop($words);
array_push($words, ‘<p />……<a href=”‘ . get_permalink($post->ID) . ‘”>[阅读全文]</a>’);
$text = implode(”\n”, $words);
}
就可以了,WordPress默认的生成摘要是用空格来判断的,就是取到55个空格结束,这适用于西方采用空格作为词间隔的语言,但中文是不分词的,所以我使用读取3行的方式,取前3行,对哪种语言都是适用的。
update @ 2007-02-09
升级到WordPress 2.1以后,这个修改的地点变为wp-includes/formatting.php,第780行左右。
update @ 2007-02-26
编写了一个插件,不用再手工修改代码了。
Bookmark and Share This Page
If you like this then please subscribe to the RSS Feed.
Save to Browser Favorites
Ask
backflip
blinklist
BlogBookmark
Bloglines
BlogMarks
Blogsvine
BuddyMarks
BUMPzee!
CiteULike
co.mments
Connotea
del.icio.us
DotNetKicks
Digg
diigo
dropjack.com
dzone
Facebook
Fark
Faves
Feed Me Links
Friendsite
folkd.com
Furl
Google
Hugg
Jeqq
Kaboodle
kirtsy
linkaGoGo
LinksMarker
Ma.gnolia
Mister Wong
Mixx
MySpace
MyWeb
Netvouz
Newsvine
PlugIM
popcurrent
Propeller
Reddit
Rojo
Segnalo
Shoutwire
Simpy
Slashdot
Sphere
Sphinn
Spurl.net
Squidoo
StumbleUpon
Technorati
ThisNext
Webride
Windows Live
Yahoo!
Email This to a Friend
December 26th, 2005 at 23:04:57
archive.php的页面显示post数目和admin里Reading Options设置的显示数目是一致的。
我为了节省打开首页速度,便设置了4条,这样显示全部和摘要没多大差别。
如果archive.php的显示post数目能自己定制,比如10条,这样我肯定会和你一样输出摘要了。
[Reply]
December 27th, 2005 at 1:53:41
我这里所说的Archive主要是针对WordPress现实搜索结果或分类时候的,默认的摘要方式只适用于西文。
首页还是不要显示太多帖子的好,不然以来首页很很长、很长,影响阅读,而来打开速度也慢。
不知道你说的“post数目能自己定制”指什么,我这里Archive也是每页5条,和Reading里设置的一样。
[Reply]
January 19th, 2006 at 18:37:09
[...] 还有修改一下生成摘要的方式,参见更改WordPress自动生成摘要的方式。 [...]
October 6th, 2006 at 16:59:28
那請問一下,如果是要讓首頁也是以摘要輸出要改哪裡呢?
我用的是 K2
[Reply]
October 6th, 2006 at 17:55:13
不好意思,那如果我想修改主頁面呢?因為首頁文章如此長實在試看的有點難受
剛搬來 wordpress 有些地方都需要人家的幫助,感謝您。
[Reply]
October 7th, 2006 at 3:18:44
我想你是不是可以在模板编辑中修改“Main Index Template”
把显示全文的函数the_content()更改为显示摘要的函数the_excerpt() ?
[Reply]
December 29th, 2006 at 15:17:35
[...] 更改WordPress自动生成摘要的方式 [...]
May 9th, 2008 at 22:01:25
我找到解决办法了。谢谢你的启发。
[Reply]