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() 函数替代算法,向这些作者致谢。
[…] 如果您是PHP高手,请忽略此文吧,以免让您觉得我很无知,连这点代码都不会修改。新手们最讨厌的就是要修改自己一点都不晓得的代码了,万一修改错误更是麻烦,所以一般都希望通过插件来解决问题。今天为了给协会的网站做这项工作特地到网上搜了一些插件,最终选用了Betty写的《wp-utf8-excerpt》这个插件,查看效果请点击这里. […]
[…] 原创插件:适合中文的 WordPress 摘要插件 […]
“继续阅读”设置里面有个1,虽然不影响,有点奇怪。然后,0.5.1版本是可以在模板上加上阅读链接,到了0.5.3,因为有这个设置,多了一个继续阅读标签,并且无法去除,有点郁闷。
@念青:
第一点是我太粗心了……唉唉唉,多谢提醒!
第二点,不太明白,怎么无法去除呢?实在不行,把插件138行注释掉就可以吧~
我偷偷地把第一点改了,不过版本号没变,从新下载下应该就好了 :)
就是我把 继续阅读1 删除之后,保存, 继续阅读1 并不会消失,而是“默认”存在,以致于这个带链接的URL在主题中会出现。修改并注释模板倒是可以的。但这毕竟不方便。
BTW,你的主题在1440X900下颜色出错,请调一下背景色吧。
@念青:
那个1我已经偷偷删除了~~
“这个带链接的URL在主题中会出现”,原来的版本也是这样吧?
那个“继续阅读”有read-more的class,用CSS隐藏也是可以的
多谢提醒,不知你遇到的是什么样的错?我测试时没有发现问题呀。如果是IE6的话就算了,我没办法支持……
博主,请问下最新版的那个3.0.1官方中文版的默认模板在哪改<?php the_content(); ?>这段代码啊,我在loop.php找出来几个这样的代码,但是不知道改哪个,还请博主赐教!小菜鸟感激不尽!
@SS:
那里有3个the_content(),第一个是管相册的,第二个是管asides的,第三个是管正文的。应该只改第三个就行了。
[…] 具体的下载地址是:http://myfairland.net/wp-utf8-excerpt/ […]
[…] 提醒:常见问题文章摘自插件作者小骆驼商队 […]
首先感谢作者,这是我认为目前做得最好的中文摘要插件。有一点建议,希望作者在后续版本里能够改进。插件设置的字数,在某些文章里会截断段落。如果可以像wp kit cn一样可以另外指定摘要的段落,就更完美了。
@thdp:
谢谢鼓励。
这个插件就是根据字数截取摘要的,字数和段落不可能一致,我想像不出来既设字数又设段落的话要怎么截取……
您好!我用您的插件,为什么不能显示“继续阅读”“[……]”没有链接,不能转到日志页面。
能改吗?
@王成:
你把症状说得具体一点,还有,上面的安装说明和常见问题看了吗?
@chenchen:
在你主题的style.css里加上下面这句话:
.read-more{text-align: right}
博主您好!
今天发现了您的这个插件觉得很好。用了之后,我有个问题想向您请教。
1.当在后台excerpt文本框内有内容时,首页摘要输出只有“省略号”却没有“read more”链接。即使我在原文上添加“more”标签还是在“excerpt文本框”添加都不起作用。我想是不是您的函数没有判断是否存在手动编辑的摘要?(has_excerpt();)
<b>这个问题希望能够尽快得到博主您的解决</b>
2.在不启用你的插件情况下,根据官方的资料,添加以下两段代码到你主题function.php里可以起到更改省略号样式和添加“read more”链接的功能。但是我添加了,却收不到任何效果。奇怪的是我不添加这两段代码,启用the_excerpt();函数,首页不输出“省略号”,我知道默认是会输出的,我尝试更换了主题,情况也是一样。但是启用你的插件可以做到,所以我对此很疑惑。您是否能帮我分析一下?
<code>
function new_excerpt_more($more) {
return ‘[…..]’;
}
add_filter(‘excerpt_more’, ‘new_excerpt_more’);
</code>
<code>
function new_excerpt_more($more) {
global $post;
return ‘<a href="’. get_permalink($post->ID) . ‘">’ . ‘Read the Rest…’ . ‘</a>’;
}
add_filter(‘excerpt_more’, ‘new_excerpt_more’);
</code>
最后我提个小建议,就是最好把“read more”的样式class也做成配置项,方便各种博客对其样式的对接。
有点问题向你请教,请联系QQ619364275
@mrniuniu:
你好,看来你是比较懂这方面东西的,所以我就说的比较专业一些啦~~
1,用户自定义摘要时,我是没处理,直接输出用户定义摘要的,所以没有read more链接。这个想弄出来不太容易……
如果你比较喜欢手动定义摘要,可以按FAQ第七条改一下插件,删掉插件里的read more链接,再改一下主题,在主题里加上read more链接:
<?php
if (is_single() or is_page()) {
the_content();
} else {
the_excerpt();
<a href="<?php the_permalink() ?>">继续阅读</a>
}
?>
这样就会一直显示read more链接
2,这条没看懂……
3,read-more有样式class呀,在CSS里改就可以
第二条的意思就是,在默认态下,不开启什么特殊的插件,首页用the_excerpt();输出,我看不到省略号。默认情况下是有省略号的。然后根据官方的指示,要添加“read more”链接,只需添加我上头提到的代码到你主题function.php文件里就行了,但是我添加了也不行。但我用你的插件就可以实现,我看了下,你的函数跟他也比较相似,都用了add_filter();过滤函数。所以我对此比较困惑。
你好!感谢作者回复!
插件的使用症状:
在摘要的结尾处没有“继续阅读”这四个字。
谢谢
@mrniuniu:
还是看不懂……“在默认态下,不开启什么特殊的插件,首页用the_excerpt();输出,我看不到省略号。默认情况下是有省略号的。”到底是有省略号还是没省略号?
另外,不知道你到底想要达到什么效果呢?WordPress自带的摘要函数对中文是无效的,所以才需要我这个插件。在原版上折腾很难有效果……我觉得你按照我上一条回复的第一点做就可以了吧……
@王成:
还是不具体……你按照说明改主题了吗?有没有手动设定摘要?文章显示的是全文还是摘要?摘要结尾有省略号吗?或者,你留下博客地址也好呀
你好,请问如果我想要去掉摘要结尾的[……]应该怎么做?另外可否更新一下插件使其可以自动找到超过选定字数的那一段的结尾,从下一段开始再隐藏,要不然从整句子中直接删掉后面半句不太好吧。
@Dorian:
1,找到134行左右的 $text .= "[……]";
把它删掉或者注释掉
2,这个插件就是根据字数截取摘要的,不会用段落来截取。想要用段落的话,就用Yskin的插件吧。:)
0.53 更新了啥
自己的博客还在测试,没有放出来,wp-utf8-excerpt插件问题已经解决。
方法是暂时卸载,等以后有时间再去研究。
支持wp-utf8-excerpt插件作者,这是我用到最好的汉语原创wordpress插件之一!!
@robbie:
在官网能看changelog的:http://wordpress.org/extend/plugins/wp-utf8-excerpt/changelog/
@小骆驼商队:
还是谢谢您的帮助~~~可能是中文的关系吧。。。现在我已经通过修改解决了~~
大家都用的这个插件吗?我的不是这个主题啊。
非常喜欢这个插件
试过好多了,其它插件都改变了一些样式,很麻烦
不过如果不需要改代码就更好了
[…] wp-utf8-excerpt插件主页 […]
貌似我中意那个主题没有找到修改的地方啊。
遗憾的是,我就没找到the_content()…
起初使用系统的more标签,但后来不知怎么就失效了.
不够我发现好像这插件不用改<?php the_content(); ?>也可以用.
侥幸啊.
@Betty:
请问您何时更新呢?我遇见了和下面网友一样的问题:
“
网友: 2010年05月19日于17:04
博客装在二级目录,发现首页的数字控制失效,跟目录页的字数一样。
”
稍有不同的是,是有的文章正常显示摘要,有的是“失效,直接显示文章/目录名”
@申佳明:
现在的版本应该已经不会出现这个情况了呀,请问你具体是如何安装的?
@Betty:
你看看我的博客就知道了
WORDPRESS 3.0.1,才装没2天。
完全按你的说明安装及修改。
不好意思问题已经解决。
原来是我在有的日志里手写了“摘要信息”,所以用了插件以后首页显示的是我手写的“摘要信息”,没有设置手写摘要信息的则按你的插件正常工作。
谢谢了。
以前一直没弄明白WORDPRESS这个摘要信息是干嘛的,还以为是给搜索引擎用的标签。
这下终于弄明白了
@申佳明:
呵呵:) 这个插件是这样的,如果用户自已手写了摘要,就会显示用户自己写的摘要,如果用户没写就自动截取一段摘要。
[…] 本文源地址:http://myfairland.net/wp-utf8-excerpt/ […]
非常感谢,问题解决了!
[…] 插件主页 Tagged with: 中文 插件 摘要 […]
找得好辛苦,太感谢了!
唉,找不到那个函数~~~
很好用的插件,只是如FAQ 3中提到问题,可否解决让<!–more–>先生效,因为如果发的文章主要是图片的话,那么几乎图片就都直接显示了。
还有一个问题是,excerpt无法在主页显示加密日志的密码输入框,如果有可能的话,希望能在下一个版本得到解决。
@commacc:
呃,没用过加密日志,我试试看这个能不能解决吧
[…] 当然,要实现中文文章摘要,你还的安装中文摘要插件wp-utf8-excerpt。 […]
借地求助一下。我的主题index.php内的内容是这样的:
<?php the_content("Continue reading " . get_the_title(”, ”, false)); ?>
请问要如何修正呢?
使用之后 多出来这段CSS代码~请问是什么问题
#gallery-1 {
margin: auto;
}
#gallery-1 .gallery-item {
float: left;
margin-top: 10px;
text-align: center;
width: 33%; }
#gallery-1 img {
border: 2px solid #cfcfcf;
}
#gallery-1 .gallery-caption {
margin-left: 0;
}
@雪飘:
把这句话整个换掉就行了