English version of this article: https://myfairland.net/wp-utf8-excerpt-en/
如果你觉得我的插件有用,欢迎向我捐赠。
提问之前请确保你查看了插件附带的 readme 文件,或本文。
不看 readme 或本文、不懂礼貌、话都说不清楚的人,抱歉我无法回答你们的问题。
插件简介:
WordPress 自带的摘要功能只支持西方文字,其他 WordPress 摘要插件要么对中文支持得不好,容易出现乱码;要么把原文所有的格式都去掉,只剩光秃秃的文字。本插件是一个适合中文的摘要插件,可设置是否保留文章中的格式标签,如字体、颜色、链接、图片等。
主要特点:
1,支持多字节语言(如中文),不会产生乱码。
2,摘要可保留文章中的格式标签,如字体、颜色、链接、图片等(需保留的标签可在后台设置)。
3,首页每篇文章显示300字,存档页面每篇文章显示150字(字数可设置)。这里的字数是真正文字的有效字数,不包括各种 HTML 标签的字数。
安装:
1,解压到/wp-content/plugins/目录
2,在插件页面激活插件
即可!
<?php the_content(); ?>
改成
<?php
if (is_single() or is_page()) {
the_content();
} else {
the_excerpt();
}
?>
注意:有些主题在the_content()中还有一些字,比如the_content(’Continue Reading »’),这种要把整句话换掉。有些主题用了其他文件来控制存档页面,如category.php、archive.php等,如有必要,请对这些文件也做修改。
更新:WordPress 新的默认主题 Twenty Ten 和 Twenty Eleven 不是在 index.php 中改了,而是改 content.php,改动方法同上。
常见问题:
1,为什么安装了插件之后无效?
答:请看“安装”部分,确认对主题文件进行了正确的修改。
2,想/不想在摘要中显示某些标签,比如图片、视频,怎么办?
答:进入后台设置页面(Settings——Excerpt),修改Allow these HTML tags中的内容。
默认设置显示图片,不想显示图片的话就把<img>删掉。
默认设置不显示视频,想显示视频的话就加入视频的标签,各个视频网站不一样,有可能是<embed>或<object>或其他,查看插入视频的代码就知道了。
其他标签以此类推。
3,为什么某些文章还是输出全文了?
答:因为你的全文太短了……
摘要显示的优先级如下:
1). 如果用户手动设定了摘要,就显示手动设置的摘要,不管字数和标签。
2). 如果设置了<!–more–>,就输出<!–more–>之前的部分,不管字数和标签。
3). 如果原文长度小于用户设定的摘要字数,显示全部字数,但会按照用户设置的允许标签来过滤标签(以后可能会提供设置来决定是否过滤标签)。这种情况下不会显示[……]和“继续阅读”链接。
4). 其他情况,按照用户设置的字数和允许标签来显示摘要。
4,我用的主题中找不到the_content()怎么办?
答:有的主题非常复杂,对文章输出做了自己的处理,有的还自带摘要功能(但一般只对西文适用……)。对于这些特殊复杂主题,改动难度很大,我也没有精力一一检查那些主题,所以只能请大家见谅:这种主题和这个插件,你恐怕只能选一个了……
5,为什么我的RSS Feed不显示全文?
答:本主题没有动RSS Feed,你的Feed不显示全文,应该跟本主题无关。请查看你的后台——设置——阅读——Feed中每篇文章,是不是选成摘要了。
6,我用了代码高亮插件,显示不正常?
答:用代码格式化插件好像确实容易出问题。对于这种文章,暂时请大家先手动加摘要吧,我再想想办法。
7,我讨厌那个“继续阅读”链接,怎么办?
答:后台选项中可以设置“继续阅读”的文本,你可以改成“Read more”或其他任何东西。它的class为read-more,可以用CSS进行美化或隐藏。如果你实在讨厌它,请打开插件文件wp-utf8-excerpt.php,找到165行左右的
$text .= "<p class='read-more'><a href='".get_permalink()."'>".$read_more_link."</a></p>";
删掉它,或者注释掉它(在行首加上//),它就不会出现了。
下载地址:
WordPress 官网:http://wordpress.org/extend/plugins/wp-utf8-excerpt/
附注:
部分代码参考了Advanced Excerpt 插件和 Yskin 的摘要插件,以及此文的 mb_substr() 函数替代算法,向这些作者致谢。
啊?那这个问题有没别的办法处理?
姐姐,修正一些代码嘛,你这个插件很受欢迎的
@blue2018:
不想显示图片视频的话可以选用别的摘要插件~~然后我有空的时候处理一下吧,最近太忙…… o(╯□╰)o
555,插件似乎好久都没更新了,那你有空记得修正一下,谢了
为什么用的这个插件后,测栏显示不正常,测栏跑到下面去了。我的博客地址:http://www.lixianchang.com
不会怎么改,弄了一中午都没有弄好,希望可以帮一下我,我的QQ:85734263
[…] 但是心中十分不甘,于是又换了一个关键词进行搜索“有摘要的 WP 主题”,没想到成功了,找到了一个插件叫做“wp-utf8-excerpt”,而且还找到了他的原创人员,这儿是他们的博客,大家有问题,可以直接咨询他呢。http://myfairland.net/wp-utf8-excerpt/ […]
@尖尖角:
@blue2018:
把插件 wp-utf8-excerpt.php 文件的 104 行的
return $text;
改成
return strip_tags($text, $allowd_tag);
应该就能解决你的问题了。
我有时间会更新插件的~
我用上你的插件后,首页摘要后面都有个[……]我觉得很丑,请问要怎么去掉?能帮我看看吗?先谢谢了
非常喜欢你的插件~
不过现在启用这个插件的时候,页码会显示“Notice: 自 2.0 版本起,已不建议给 has_cap 传入一个参数!插件和主题中,用户等级的使用已不被支持。请换用角色和权限。”
期待你的更新~
谢谢!
[…] 要打开摘要部分的功能 需要参考摘要插件的设置http://myfairland.net/wp-utf8-excerpt/ […]
[…] 插件主页 […]
[…] 具体的下载地址是:http://myfairland.net/wp-utf8-excerpt/ […]
[…] 具体的下载地址是:http://myfairland.net/wp-utf8-excerpt/ […]
想问问老大,如果只想在首页文章下增加一个“继续阅读”怎么搞,就是那个显示摘要功能不要,老大能帮忙解决吗,万分感谢
[…] 具体的下载地址是:http://myfairland.net/wp-utf8-excerpt/ […]
@问问:
这样就没必要用这个插件了,直接修改 index.php 吧~
[…] 还有相关文章、Gravatar缓存、评论回复邮件、自定义 WordPress 表情、WordPress 防止冒充留言、Gzip压缩、中文 WordPress 工具箱、访问历史、中文摘要等插件,都是通过代码实现的。相关代码都可以在我提供的loosky皮肤中找到,custom-functions文件夹下面。 […]
[…] 文章摘要插件wp-utf8-excerpt:http://myfairland.net/wp-utf8-excerpt/ This plugin generates a better excerpt for multibyte language users (Chinese, for example). Besides, it keeps the html tags in the excerpt. 为使用多字节语言(如中文)的Wordpress用户提供更好的摘要算法,以解决Wordpress默认摘要算法只考虑西方语言的不足。此外, […]
@commacc:
我也是同样的疑问,希望作者能考虑
[…] 选择wordpress=选择折腾,停用插件带来的问题 inzaghiaimar 发表于 2011-9-6 分类 无题文章 | 发表评论 今天终于发现一个问题,选择wordpress搭建博客一定要非常有耐性,特别是大多人我相信都是和我一样的菜鸟,出了问题百度、谷歌都要一大把时间,今天我碰到的问题就是停用了摘要插件wp-utf8-excerpt ,更改为使用原带的more标签后,先是more标签不起作用,解决后文章变得好几篇摘要和正文字体变小,另外几篇又正常显示。+_+ […]
[…] 昨天在网上买了一个国外的主机,这样就不用再去备案了,其实想去备案的,但是流程看了好几天也没搞明白怎么备案,索性就翻墙出去吧。这连着两个晚上都在研究Wordpress,把72松的博客导入,今天晚上研究那个如何设定首页摘要的插件,网上下载了很多都没有用,最后还是用了wp-utf8-excerpt (0.5.3 版本 | 作者为 Betty | 访问插件主页)。 […]
[…] 原创插件:适合中文的 WordPress 摘要插件 […]
刚更新了0.6版本,但是这个版本跟WP-Syntax插件不兼容,启用了wp-utf8-excerpt的0.6版本后,WP-Syntax插件便失效了.
还没看0.6版本的代码.望作者尽快改进吧.
@lite3:
WP-Syntax 是代码高亮插件吗?这个以前好像就不兼容啊……
更新后连首页也启用摘要算法了。可是我要没更新前系统默认的more方式!!!
接上条,就是不干涉<?php the_content(); ?>。只对<?php the_excerpt(); ?>采用你的摘要算法。
@Betty:
你可以去我博客看的,我现在用0.5.3版本的,是兼容WP-Syntax插件的.
@小影:
以后我加个设置吧,让用户选择是否改 the_content()
现在你可以先继续用老版本:http://downloads.wordpress.org/plugin/wp-utf8-excerpt.0.5.3.zip
@lite3:
0.5.3 版本,摘要也能显示出代码高亮吗?
真的感谢插件的开发者,很好的帮我解决了问题,前几天还到过你的博客希望能帮忙改下插件,真没想到,竟让插件更新了,让我喜出望外的事,在更新的版本中,竟然解决了我的问题。谢谢提供这么好的插件!
@Betty:
不能显示高亮,但是在rss里不显示也无所谓的.
在文章里是显示的.
@lite3:
看了一下,改一下优先级,让我的插件先处理文章内容,WP-Syntax 后处理就行了。下面是变通办法,你可以先用着。我再看看有没有更好的办法。
既然你用了代码高亮插件,我想你是有能力改代码的吧 ^_^ 所以:
(一)让正文支持代码高亮:
a)改 wp-utf8-excerpt.php 185 行
add_filter(‘the_content’, ‘utf8_excerpt_for_content’, 9);
最后的数字 9 改成 0
b)改 wp-syntax.php 198 行
add_filter(‘the_content’, ‘wp_syntax_before_filter’, 0);
最后的数字 0 改成一个比 0 大的数,比如 1
(二)让摘要也支持代码高亮:
a)改 wp-syntax.php 199 行
add_filter(‘the_excerpt’, ‘wp_syntax_before_filter’, 1);
最后的数字 0 也改成一个比 0 大的数,比如 1
b)后台,摘要选项——允许的HTML标签,增加一个 <pre>
我升级后发觉之前有分页的博客,分页竟然无效了,禁用后就可以,是有什么冲突吗?
这款插件升级后与 版权声明Add Post URL插件有冲突,期待改善!
有什么冲突?
[…] Excerpt为wp-utf8-excerpt,首页摘要显示正常 Category: Blog Tags: page navi You can follow any responses […]
站长,你好,今天我更新了0.6.1版的WP-UTF8-Excerpt,查看当中的代码时遇到了一些疑问,请问,为何在判断是否在文中插入more标签这段代码上会有3个判断?而且当我在“case ‘content’:”这段代码中加入“$text = strip_tags($text, $allowd_tag);”之后,即便设置了保留标签,可摘要中居中的样式就没能保留下来,结果是全部都向左对齐了,除非不在文章中插入more标签,否则的话,摘要中的对齐方式就会发生改变,请问改如何修改,谢谢
你为何要改我的代码?不改代码之前使用情况如何?
不改之前的状况是一张图片一行文字,依次这样显示,不过这是在设置中限制的字数内的
恩?怎么没显示出来?设置中保留了p这个段落标签,可当中用style设置的居中样式却给过滤掉了
因为不改的话,如果文章图文混排的时候,会将图片和文字一起显示在摘要那,我只想要文字显示,图片不显示,而我的主题首页每篇文章的摘要上方都有一张特色图片显示出来的,所以,主题所选的也是以content方式输出摘要,如果以excerpt方式输出,那张特色图片也不会显示出来的,所以我就想在原代码的基础上做些修改以更符合个人需要,请问这样改的问题出在哪?为何p标签中的样式给过滤掉了?
只是不想显示出图片的话,请看常见问题第二条,即:设置——摘要选项——允许的 HTML 标签:删除
恩,我已经设置了,可是当文字字数为达到限定的字数之前,它还是会连同图片一起显示在摘要中,0.5.3版用起来就很正常,我指的是段落标签如果有居中的样式,输出时一样会居中,可更新了新版之后就变成靠左对齐了。奇怪的是,只有在编辑文章时插入more标签才会出现这样的问题。其它的情况测试过都很正常,唯独这个不知怎么回事了。
我明白了,因为读取设置选项是在判断 more 标签之后,所以你加入 $text = strip_tags($text, $allowd_tag); 这句话的时候,$allowd_tag 是空的,所以就把所有标签都过滤了。
解决方法:
a,如果 0.5.3 版能满足你的需求,就接着用那个版本吧
b,如果想用新版的话,得把 157 行 $allowd_tag = get_option(‘allowd_tag’) ? get_option(‘allowd_tag’) : ALLOWD_TAG; 这句移到 126 行判断 more 之前,然后再像你原来那样加入 $text = strip_tags($text, $allowd_tag); 这句话
非常感谢,我先试试,谢谢!
果然如你所说的那样,我把//get the options这部分的代码整个移到//if there is a tag, return stuff before that这部分代码之前,我所要求的显示效果就能实现了,非常感谢站长你的热心解答。另外,我想向你报告一个问题,代码中“$text = substr ($text, 0, -21);”是不是应该改成“$text = substr ($text, 0, $more_position);”这样才对,否则摘要显示时末尾会有英文字母出现。
更新0.6.1了,更新记录说“fix numerous compatability issues after hooking the_content”;是解决我说的那个问题吗?没有选项也没有取消hook啊?
能具体说下你到底遇到了什么问题吗?比如 WP 版本、主题、设置、问题的具体表现,等等
[…] 首页默认显示的是文章全文,如果要显示摘要要自行打开index.php把”the_content()”修改为”the_excerpt()”,中文博客需要完美显示摘要建议安装这两个插件的其中一个:wp-utf8-excerpt 或者 中文工具箱,我比较喜欢用前一种。 […]
很不错的插件,感谢提供。
提一点小小的改进,希望能在后台设置取消那个Read more的链接或者添加个Hook,我们好自行L10n,再次感谢
设置里可以改 read more 的文字啊,想删掉的话请见常见问题第七条
谢谢,这个在Readme里已经读到了,1. 只是我在用qTranslate插件实现多国语言的版本,后台设置也只能显示一种语言。2. 直接去修改代码不是很优美的方式,但是作者不想提供定制的功能目前也只好这样做了
没用过 qTranslate,不了解。我这版插件已经支持多国语言了呀,默认是英语,只有用户把 WP 语言设成中文才会显示中文
[…] WP-UTF8-Excerpt|点此安装:适合中文的WordPress摘要插件 […]
[…] http://myfairland.net/wp-utf8-excerpt/ […]
插件不错,很有用。
但是为什么非要判断是否是 home和归档才执行。这个应该由用户来决定。
搞得我的搜索结果的摘要不起作用。
改了代码才行!
因为怕误影响到其他的页面……搜索结果我记得以前属于归档页啊,我记错了?-.-
搜索页摘要不起作用+1
OK,我改了,现在搜索结果页应该和存档页一样了,请更新吧
博客装在二级目录,发现首页的数字控制失效,跟目录页的字数一样。
具体怎么配置的二级目录?不说清楚无法找出你的问题所在呀。
我用的是 WordPress 自带的判断首页的函数 is_home()。
[…] 表情、WordPress 防止冒充留言、Gzip压缩、中文 WordPress 工具箱、访问历史、中文摘要等插件,都是通过代码实现的。custom-functions文件夹下面。 访问酒窝吧博爱 […]
作者您好,新版本遇到了加密的文章后,直接就输出文章了,不会有输入密码那个框
望检查
好的,我会看一下。你可以先用旧版本,等我改好了再用新的~
我试了一下,用这个插件配合 WordPress 自带的主题都会提示输入密码啊,是不是你的主题原因?你禁用插件或者换个主题试试
hi,你好。对于这个插件,在我的网站上使用到没有显示什么性能问题。
但是在我本机搭建的wordpress环境中(windows7,apache+php+mysql)中,WP-UTF8-Excerpt存在很严重的性能问题,对于多文字的文章性能非常不好。index.php中显示20篇文章竟然需要15秒。我最终定位到WP-UTF8-Excerpt插件上。禁用这个插件就快许多。注意,这是在windows7环境下。不知是什么原因?我的邮箱careprad@gmail.com,欢迎讨论。
检查一下是不是没装 mbstring 库,如果没有这个库,处理汉字字符串会非常慢。不知道你的环境是怎么搭的,推荐装 xammplite,所有库都很齐全,无需自己繁琐配置~(只适合本机,服务器上不要直接用)
主题index.php是如下,请问怎么改?多谢!
纯新手,申空间域名都是上星期的事情……
get_header(); ?>
如果用最新版的话应该不用改,启用即可