Wordpress首页显示摘要终极解决方案
很多Wordpress主题默认在首页显示所有文章内容,这显示是个不好的方式。一是会造成首页太长,“盖楼”太高,二是会造成首页的内容与文章页面的内容重复,不利于SEO。所以一般的blog都只在首页显示摘要。
51美刀在刚开始就遇到了这个难题,搜索一番之后,发现网上已经提供了不少解决方案,但是似乎没有一个奏效的。究其原因,就是那些解决方案还是利用wordpress本身提供的函数如the_excerpt()或者more标签之类,要不就是找国外的插件,如”the_excerpt_reloaded”这个插件。试用之后,发现都无法解决问题。其根本原因,就是国外的插件都是采用空格计算单词的个数,然后从正文中摘取若干个词作为摘要,但是中文都不是靠空格来分词的,所以对中文博客这种方法肯定没用。
笔者在研究the_excerpt_reloaded这个小插件的基础上,修改了其中的部分代码,使之能适合中文博客的需要,并命名为yet_another_excerpt。其实这个问题通过hack Wordpress的代码也可以解决,之所以采用插件的形式,是因为插件具有更多的灵活性,比如可以方便将来Wordpress系统的升级。
Plugin Name: yet another excerpt
Plugin URI: http://www.51meidao.com/2008/08/yet-another-excerpt/
Description: 基于the_excerpt_reloaded插件,修正了不能正确处理中文的问题。
Version: 0.1
Author: 51meidao.com
Author URI: http://www.51meidao.com
适用Wordpress的版本
目前51meidao.com使用的是最新的2.6版,只要你的wp版本不是太旧(v1.5以上),应该都没问题。(如果你的wp那么旧,证明你肯定已解决这个问题了。)
对后台系统的要求
要求php启用了mbstring模块。可使用phpinfo()查看是否启用了mbstring模块。方法为写个如下的php页面:
<?php
phpinfo();
?>
保存在服务器上,访问之,就会出现php的相关信息。在其中搜索“mbstring”字符串,如果能找到一般就是启用了。
安装方法
直接将yet-another-excerpt.zip解压到plugin目录。然后在wordpress管理页面中启用即可。
使用方法
在你所使用的主题里面,找到index.php文件,找到显示主页内容的地方,一般会有the_content()这个函数,将其改为wp_yet_another_excerpt()就可以了。这里会使用插件默认的参数显示摘要。
如果你要实现个性化的摘要,也可以按照下面的说明,调用yet_another_excerpt()函数:
yet_another_excerpt($excerpt_length,
$encoding,
$allowedtags,
$use_more_link,
$more_link_text,
$more_link_title,
$showdots)
各个参数的含义是:
$excerpt_length: 摘要的长度。当然这个不是绝对准确,因为可能包含一些HTML的tag。
$encoding:网页的编码,一般是”UTF-8″。
$allowedtag:允许使用的HTML tag。
$use_more_link:增加一个类似51meidao.com首页每个摘要后面显示的”阅读全文”的链接。
$more_link_text:链接显示的文本内容。
$more_link_title:光标悬浮在链接上时,浏览器显示的文本。
$showdots:是否在摘要的末尾显示3个点号,即”…”。
本站调用上述函数的语句是这样的:
yet_another_excerpt(120, ‘UTF-8′, ‘<p><a><ul><ol><li><img><br /><blockquote><em><strong><h1><h2><h3>’, 1, ‘[阅读全文]‘, ‘阅读全文’, 1);
下载
点击下载yet_another_excerpt插件。

八月 24th, 2008 at 21:02
fine,一个不错的修改实例
十月 8th, 2008 at 14:16
[...] 本文转载自这里。 [...]
十月 8th, 2008 at 14:17
非常不错的修改,我用你的办法修改了我blog的主题,终于显示正常了。谢谢。同时我也转载了你的文章。