wp最新评论之自我改造

反复思考后,博主决定让评论的内容取代被评论的标题显示在首页上,不用插件,找到所要替换的代码,直接替换了事!!
第一步:用用flashfxp将default-widgets.php下载到本地(路径:\wp-includes\default-widgets.php)。然后再复制一份放到其他文件夹进行备份!
第二步:用 Notepad++ 打开default-widgets.php
第三步:查找“ get_the_title” 并且定位到下面的代码

  1. $output .=  '<li class="recentcomments">' . /* translators: comments widget: 1: comment author, 2: post link */ sprintf(_x('%1$s on %2$s', 'widgets'), get_comment_author_link(), '<a href="' . esc_url( get_comment_link($comment->comment_ID) ) . '">' . get_the_title($comment->comment_post_ID) . '</a>') . '</li>';  

然后将上面代码修改为:

  1. $output .=  '<li class="recentcomments">' . /* translators: comments widget: 1: comment author, 2: post link */ sprintf(_x('%1$s 说:%2$s', 'widgets'), get_comment_author_link(), '<a href="' . esc_url( get_comment_link($comment->comment_ID) ) . '">' . strip_tags( $comment->comment_content) . '</a>') . '</li>';  

修改好之后保存(注意保存的时候因为我们在代码里面加入了中文“说:”,所以编码需要更改为UTF-8的形式,否则上传之后可能出现显示乱码的现象)
第四步:上传覆盖掉原来的文件
修改的工作基本就结束了,打开你的网站你会发现评论的内容已经取得被评论的文章显示在了首页的位置!效果见侧栏,不多说鸟!!
-----------------------------------------------------------------------------------------------------------------------
在此之后,评论内容确实是显示了,但最新评论的图片不显示了,只显示表情代码,这样太不爽了,而且我用的这套表情还是替换默认的表情,很多表情与表情代码根本对不上,这样会让人很费解,本来是一个很赞的表情,结果显示的是一个大大的问号!不爽,相当不爽!现在看下怎么解决吧
用 Notepad++ 打开default-widgets.php,是inove主题的就直接找到第657行

  1. echo $output;  

没找到的用ctr+f搜索!
找到这个后,在它的前一行,贴上如下代码:

  1. $output = convert_smilies($output);  

好了,搞定了,最新评论里的表情显示出来了,嘎嘎!图就不上了,直接看俺的最新评论就行了!
---------------------------------------------------------------------------------------------------------------------
另外,如果要本博一样,在评论前加上评论作者的头像,即以下代码

  1. /* translators: comments widget: 1: comment author, 2: post link */ sprintf(_x('%1$s:%2$s', 'widgets')  

前加上如下代码:

  1. get_avatar(esc_attr(get_comment_author_email()),'32')  

搞定了!

另外,补充一下相关函数知识

  1. get_avatar(esc_attr(get_comment_author_email()),'32')  

可以显示评论者头像,最后的32为gravatar头像的大小。效果可以看本博右侧评论栏,我这使用的大小是18;

  1. strip_tags($comment->comment_content)  

这段函数可以显示的是最新评论内容

  1. mb_strimwidth(str,0,34,"...")  

用这段函数可以截取指定字数的内容,保持输出的美观。第一个参数str可以替换成需要显示内容的函数;第二三个参数制定了截取开始的位置和长度(英文一个字节,中文占两个字节),最后一个参数制定了截取后在尾部显示的内容,可以考虑用省略号。反正这个函数可以截取过长的用户名、过长的文章名、这俩加起来过长了也可以再截取一下。

  1. get_comment_date()  
  1. get_comment_time()  

这俩函数可以显示评论日期和时间,括号内的参数可以填写如'h:m:s'或'y.m.d'这样的时间格式参数,具体还请参看php的手册。

Comments

  1. 太高深了,完全搞蒙了。
    想来朕还是搞需求文档好了,
    珍爱什么,远离代码。

    [reply]

    亨sirat Opera 11.10 Opera 11.10 Windows XP Windows XP

    @虫, 哈哈,珍爱生命远离国足 :mrgreen:

    [reply]

  2. 我来学习啦~~嘿嘿~~只是我的博客里没有表情~~这个好像用不上啊~~~

    [reply]

    亨sirat Firefox 6.0.2 Firefox 6.0.2 Windows XP Windows XP

    @MurphyL, 应该有自带的啊!
    你只是没调用啊

    [reply]

  3. 嘿嘿~~是没有调用它~我的意思是没有用表情,这个的用处就不大哦~~

    [reply]

    亨sirat Firefox 6.0.2 Firefox 6.0.2 Windows XP Windows XP

    @MurphyL, 嗯,我搞错了,如果这位朋友还在的话,能否帮我测试评论的嵌套功能?多回复几层,看看效果

    [reply]

    MurphyLat Google Chrome 14.0.835.163 Google Chrome 14.0.835.163 Windows 7 x64 Edition Windows 7 x64 Edition

    @亨sir, 额~~来测试啦~~

    [reply]

    MurphyLat Google Chrome 14.0.835.163 Google Chrome 14.0.835.163 Windows 7 x64 Edition Windows 7 x64 Edition

    @亨sir, 哈哈~不谢~~互相帮助吗~~

    [reply]

    亨sirat Firefox 6.0.2 Firefox 6.0.2 Windows XP Windows XP

    @MurphyL, 嗯,欢迎经常走动!

    [reply]

  4. 写得不错哦. 支持.

    [reply]

    亨sirat Firefox 6.0.2 Firefox 6.0.2 Windows XP Windows XP

    @酷配网, 过讲咯,最重要的是对网友有帮助!不然,也不过是过眼云烟,没有任何意义

    [reply]

    亨sirat Firefox 6.0.2 Firefox 6.0.2 Windows XP Windows XP

    @酷配网, 这位大哥,你内,老纳只能给你送IP了!! 💡

    [reply]

发表评论

电子邮件地址不会被公开。 必填项已用*标注

CommentLuv badge