Get Recent Comments 中文改良版

注意:转载本文请说明出处,谴责赤裸裸的剽窃行为!

正式弃用了中文工具箱,采用Get Recent Comments插件来显示最新评论。

这个插件可以在后台设置在每隔多少长度插入一个空格来防止因为评论过长破坏页面布局,但是因为中文问题原版插件在插入空格时可能插入到一个中文字符的中间从而导致乱码问题,这里提供一个自己改良了的版本。

原版插件默认使用的是空格来插入评论达到换行的目的,我换成了<wbr />(软换行标签,表示此处可换行)。好处是评论显示时都是连续的而不会产生多余的空格,可能存在的问题是此标签不被某些浏览器所支持,根据需要自己修改一下参数即可。

调用方法:

<?php if (function_exists('get_recent_comments')) { ?>
    <h2>Recent Comments</h2>
        <ul>
        
<?php get_recent_comments(); ?>
        </ul>
<?php } ?>

下载:
Get Recent Comments(based on v2.0.2, for WP 2.3 and later version)
更新日志:
2007-09-26 作者很勤快,我也勤快点,更新至v2.0.2,增加包含/不包含分类的选项设置
2007-09-25 基于原版2.0修改适应WordPress 2.3的最新版本,节约数据库开销,修复若干bug,推荐更新

下载:
Get Recent Comments(based on v1.5.5, for WP 2.2 and earlier version)
更新日志:
更新1:修改了执行utf8_wordwrap的顺序,先截取摘要再插入标签,解决截断标签的问题和因为插入标签影响截取长度的问题。

更新2:有时候最新评论并不马上出现,这是因为使用了cache的原因,对于我这样已经使用了WP_Cache插件的用户来说并无意义,最简单的更改方法是搜索“$use_cache = TRUE;”,将TRUE改为FALSE并保存。

更新3@2007-05-01:删除一句可能导致程序执行错误的语句,不明白原作者的意图

更新4@2007-05-27:修复由于插件调用WP的wptexturize函数导致的乱码问题,改为先截取以后再执行wptexturize

更新6@2007-08-09:完全解决末尾半个字符的问题

更新7@2007-08-10:修正一个以前的错误逻辑,可能导致插入过多的无效标签

更改方法:

  1. function utf8_trim($str) {
  2.  
  3.     $len = strlen($str);
  4.  
  5.     for ($i=strlen($str)-1; $i>=0; $i-=1){
  6.         $hex .= ' '.ord($str[$i]);
  7.         $ch = ord($str[$i]);
  8.         if (($ch & 128)==0) return(substr($str,0,$i));
  9.         if (($ch & 192)==192) return(substr($str,0,$i));
  10.     }
  11.     return($str.$hex);
  12. }
  13.  
  14. function utf8_substr($str, $len) {
  15.     for ($i = 0; $i < $len && $i < strlen($str); $i++) {
  16.         $temp_str = substr($str, 0, 1);
  17.         if (ord($temp_str) > 127) {
  18.             $i ++;
  19.             if ($i < $len) {
  20.                 $new_str[] = substr($str, 0 ,3);
  21.                 $str = substr($str, 3);
  22.             }
  23.         } else {
  24.             $new_str[] = substr($str, 0 ,1);
  25.             $str = substr($str, 1);
  26.         }
  27.     }
  28.     return join('', $new_str);
  29. }
  30.  
  31. function utf8_wordwrap($instr, $width, $s = '<wbr />') {
  32.     $outstr = '';
  33.  
  34.     do {
  35.         $len = strlen($instr);
  36.         if (strlen($instr) > $width) {
  37.             $tmpstr = utf8_substr($instr, $width);
  38.             $outstr .= $tmpstr;
  39.             $outstr .= $s;
  40.         } else {
  41.             $tmpstr = $instr;
  42.             $outstr .= $tmpstr;
  43.         }
  44.         $instr = substr($instr, strlen($tmpstr), $len);
  45.     } while (strlen($instr) > 0);
  46.  
  47.     return $outstr;
  48. }
标签:, , , , , , , , ,

相关日志 随机文章

Comments

27 Responses to “Get Recent Comments 中文改良版”

  1. 友情链接 on 2007-05-01 5:47 pm

    友情链接库说明: 友情链接是网站推广的重要方法之一,本网站应广大站长请求,开发本平台,本站的特点是:本站收集长站的qq,只要你来我站,你就可以和成千上万的站长实现在线沟通,简单、方便,一改之前,因沟通不便,而使本应可以互换的友情链接,而无法做成。为了加入本网的所有网站公平在首页出现,只要从你站有客户来我站,你的站马上就会排到第一,使贵站马上就会出现在成千上万的站长眼前。

    [Reply]

  2. hansen on 2007-05-26 3:43 pm

    hi,用了你改良后的这个插件,解决了一部分乱码问题,但发现如果留言中最后有…符号就还有乱码,有办法解决吗?

    Thanks and best wishes!

    [Reply]

  3. Sunshow on 2007-05-26 9:06 pm

    我也发现…后面会出现230之类的东西,等我上班了看看,在家呆着就是懒啊

    [Reply]

  4. Sunshow on 2007-05-27 11:30 am

    @hansen:问题已解决,请重新下载

    [Reply]

  5. 5468sun on 2007-06-29 10:46 am

    在我这里还是有问题~
    在”…” 之前会出现”?”,
    不知道是什么原因~

    [Reply]

  6. Sunshow on 2007-06-29 1:09 pm

    出问题的url?

    [Reply]

  7. 郁也风 on 2007-08-04 10:37 pm

    呵呵,你好,我也有与楼上同样的问题啊。

    还请移架到俺的blog上看一下吧,3kx

    [Reply]

  8. 潘大财经 on 2007-08-05 2:06 pm

    Sunshow你好,非常感谢你提供这个插件下载。我在试用时,也出现了5楼和7楼回复中所提到的问题,我在你的插件的基础上做了一点小修改,目前经过测试,已经解决掉这个问题了,现在提供下载,下载地址在

    http://www.panda100.com/download/wordpress/get-recent-comments.zip

    你可将其放于你的网站,供网友下载。由于本人博客所面向的访问者主要不是技术人士,加之服务器有流量限制,在你下载后,我会将该下载地址删除。

    [Reply]

  9. 潘大财经 on 2007-08-05 2:13 pm

    原插件的具体现象,由于5楼没有给出地址,你可参考我的上一篇评论,在贵站右边sidebar的recent comments中“也出现了5楼和7楼”这段话之后,是出现了一个怪字符的。

    [Reply]

  10. Sunshow on 2007-08-05 7:23 pm

    @潘大财经:已经把你的修改放上去了,不过对于没有mb_strimwidth函数的应该还是会有问题。不过一般国内主机应该都有这个,暂时先这样吧。

    非常感谢以上几位朋友的提醒。

    [Reply]

  11. Sunshow on 2007-08-09 8:27 pm

    好了,彻底解决了这个问题,呵呵。
    请以上几位朋友重新下载~

    [Reply]

  12. 潘大财经 on 2007-08-15 10:50 am

    我下载了最新版的,目前完全正常。

    [Reply]

  13. 潘大财经 on 2007-08-15 10:54 am

    我用vim diff了一下,确实比我那个hotfix写的高明多了,非常感谢Sunshow能把自己修改的版本共享出来。

    [Reply]

  14. Robin on 2007-09-16 3:08 am

    不错的差件,我来试试。

    [Reply]

  15. Sunshow on 2007-09-26 1:28 am

    基于原版2.0修改最新版本
    推荐更新

    [Reply]

  16. 沙龙 on 2007-09-27 6:07 am

    更新很及时,狂赞!!!

    [Reply]

  17. 中文互联网观察站 on 2007-09-27 7:58 am

    <strong>????Powered by Wordpress 2.3?…</strong>

    ??????????????????????????beta1?rc1??localhost????????????????????????tag????????????????????????php??????????????????????
    ???????wordpress????????Tag?????????????SEO?????????????????????301????????????????????????????????????????????http://www.example…

  18. minidxer on 2007-11-07 10:50 pm

    好像可以解决乱码问题,谢拉~

    [Reply]

  19. 跳舞的熊 on 2007-12-29 1:03 am

    好用,乱码问题解决了!
    博主为何不与此插件原作者联系以官方支持中文呢?

    [Reply]

  20. allen on 2008-01-13 4:51 pm

    无法通过XHTML校验,有办法解决吗?

    [Reply]

  21. Sunshow on 2008-01-14 3:52 pm

    @allen:将插件中的wbr标签替换成空格之类的就行了

    [Reply]

  22. misser on 2008-02-15 4:43 pm

    我下载了最新的(v2.02)改良版,为什么还是有乱码呢?哪位大虾能过来看看么,谢谢 :)

    [Reply]

  23. misser on 2008-02-15 5:07 pm

    Hi Sunshow, 刚才不知是不是刷新的问题(我连续刷了几次呀…), 现在已经正常了,非常感谢 :D

    [Reply]

  24. digihero on 2008-04-02 11:54 am

    评论还加个验证码,这是那个插件啊?

    [Reply]

    Sunshow reply on 04月 2nd, 2008:

    WP-ImgCode mod
    不过不一定能访问到

    [Reply]

  25. digihero on 2008-04-02 11:54 am

    加上email回复,哈哈

    [Reply]

    digihero reply on 04月 2nd, 2008:

    对不住博主,测试一下。制造点垃圾留言了。

    [Reply]

Leave a Reply




请输入验证码

Use "<coolcode></coolcode>" to publish your code.

Line breaks and paragraphs are automatically converted.

Please keep comments relevant. Off-topic, offensive or inappropriate comments may be edited or removed.

京ICP备05059555号