让小工具脱颖而出 – 制作独立的最近评论工具

[隐藏]

之前,wu1yi2fan在讲如何给评论框添加表情功能的时候,讲到过怎样改造我们的最近评论小工具,但是,按照那篇教程的改法,我们需要修改WordPress的源文件,而且一旦遇上重大更新,有很大的几率会被恢复原状。万一你手贱不小心改到了其他的代码就杯具了。所以,wu1yi2fan捣鼓了一个小时后,写下了这一篇~我保证,安全0风险,而且十分简单,不简单我立马去跳楼!!!

之前wu1yi2fan说了什么?额,请看这里~

让你的评论框生动起来 – 给WordPress评论框添加表情

把最近评论独立出来,我们需要干几件事。准备好你的代码编辑器和你的主题,我们现在开始~

1.手动

这里其实很简单,直接从WordPress的源文件里面提取出来就好了,哈哈。(不信你自己按照之前的那一篇文章对照看看,除了修改一些必须修改的部分以外,全是WordPress源文件中的。)

<?php
 
/*---------------------------------------------------------------------------------*/
/* Comments widget */
/*---------------------------------------------------------------------------------*/
class Ltopro_comments extends WP_Widget_Recent_Comments {
 
    /**
     * 构造方法,主要是定义小工具的名称,介绍
     */
    function Ltopro_comments() {
        $widget_ops = array('description' => __('显示最新评论内容~勒统驿站修改'));
        parent::WP_Widget(false, ('增强版评论挂件'),$widget_ops);
    }
 
    /**
     * 小工具的渲染方法,这里就是输出评论
     */
    function widget( $args, $instance ) {
        global $comments, $comment;

        $cache = wp_cache_get('widget_recent_comments', 'widget');

        if ( ! is_array( $cache ) )
            $cache = array();

        if ( ! isset( $args['widget_id'] ) )
            $args['widget_id'] = $this->id;

        if ( isset( $cache[ $args['widget_id'] ] ) ) {
            echo $cache[ $args['widget_id'] ];
            return;
        }
 
        extract($args, EXTR_SKIP);
         $output = '';
        $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? __( 'Recent Comments' ) : $instance['title'], $instance, $this->id_base );

        if ( empty( $instance['number'] ) || ! $number = absint( $instance['number'] ) )
             $number = 5;
        
        $comments = get_comments( apply_filters( 'widget_comments_args', array( 'number' => $number, 'status' => 'approve', 'post_status' => 'publish' , 'user_id' => 0) ) );//“'user_id' => 0”用来去除管理员的后台评论(回复)
        $output .= $before_widget;
        if ( $title )
            $output .= $before_title . $title . $after_title;

        $output .= '<ul id="recentcomments">';
        if ( $comments ) {
            foreach ( (array) $comments as $comment) {
                $output .=  '<li class="recentcomments" style="overflow: hidden;"><span class="avatar_40" style="float: left; margin-right: 15px;">'.get_avatar($comment, 40).'</span>' . //.get_avatar($comment, 40). 是为了显示头像,40表示头像大小为40*40
                /* translators: comments widget: 1: comment author, 2: post link */ 
                sprintf(_x('%1$s 在 《%2$s》 里面吐槽道:</br>', 'widgets'), get_comment_author_link(), '<a href="' . esc_url(
                get_comment_link($comment->comment_ID) ) . '" rel="nofollow">' . get_the_title($comment->comment_post_ID) . '</a>') . '' . convert_smilies(strip_tags( $comment->comment_content)) . '</li>';
            //$output=后面是显示出来的内容,自行修改~
            }
         }
        $output .= '</ul>';
        $output .= $after_widget;
 
        echo $output;
        $cache[$args['widget_id']] = $output;
        wp_cache_set('Ltopro_comments', $cache, 'widget');
    }
 
}
 
//注册小工具
register_widget('Ltopro_comments');
?>

呵呵是不是觉得好长啊?那是当然,所以,wu1yi2fan提供了已经制作完成的文件哦。使用方法就是……将这个文件放在主题目录下(记得删除后面的.txt),然后,在主题的function.php中加入以下代码:

require_once (get_template_directory() . '/widget-comments.php');

接下来,进入你主题的小工具页面,怎样,是不是看见了一个名字叫做“增强版评论挂件”的小工具呢?拖出来试试吧~

下载地址:本地下载

2.插件版

wu1yi2fan为了大家着想,想想看,前面的方法还是要修改主题文件啊,一不小心又会杯具啊,所以,wu1yi2fan把它做成了一个小插件,当然,没有上传到WordPress官网(不敢上传啊,官网的每一个插件都需要经过审核,让官网的孩纸发现我是无耻的直接修改了部分代码然后直接做成插件,非要一巴掌把我拍死不可。555……)

使用方法:上传以后启用即可。接下来,你的小工具里面就会出现这个神奇的小工具啦~

下载地址:本地下载

3.修改表情路径

这个我就无话可说了,你需要修改当初wu1yi2fan提供的smiley.php最后的那一连串的图片地址从

/wp-includes/images/smilies

改为

<?php bloginfo('template_directory'); ?>/smilies

然后,把下面这段代码加入function.php中

//表情自定义

add_filter('smilies_src','custom_smilies_src',1,10);
 function custom_smilies_src ($img_src, $img, $siteurl){
     return get_bloginfo('template_directory').'/smilies/'.$img;
 }

最后,把你的表情文件夹放入主题文件夹就大功告成啦~

发布者

wu1yi2fan

集合了懒,馋,脑残,逗,爱吐槽,勤奋,爱折腾,爱搬运,貌似还有一点抠门的一个神奇的家伙。(话说貌似有些很矛盾?)喂,话说你都看到这里了,为啥不留言?(ノ=Д=)ノ┻━┻

《让小工具脱颖而出 – 制作独立的最近评论工具》有16个想法

    1. @xnces, 布吉岛= =要不是你的那句“有难度你打我,真的简单”,我想不出怎样解释这次的教程是多么的简单。 :twisted: 所以,来,亲一个吧~ :grin: :grin:

      Firefox Windows

发表评论

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