• 售前

  • 售后

热门帖子
入门百科

本身做wordpress评论插件修改评论样式(两步美化评论内容)

[复制链接]
123456825 显示全部楼层 发表于 2021-8-15 19:43:13 |阅读模式 打印 上一主题 下一主题
wordpress自带的近期批评小工具不会表现详细的批评内容,而且还会表现管理员的批评,感觉不是很好,只能自己处理一下。花了近一个晚上才处理好,重要用在明确小工具的原理上了,但是使用起来就非常简朴了,只要简朴的两个步调。该小工具在wordpress 3.4.1版本上测试通过。先来个截图预览下:


1、制作小工具
代码一堆可以不消管它,直接将代码生存到wordpress的/wp-content/widgets/comments.php文件。
为什么放到这里呢?因为像主题、插件这些都是存在wp-content这个目次下面,小工具存放在这里可以同一管理,也符合wordpress目次规则。

复制代码代码如下:
<?php</p><p>/**
* 继承WP_Widget_Recent_Comments
* 如许就只必要重写widget方法就可以了
*/
class My_Widget_Recent_Comments extends WP_Widget_Recent_Comments {</p><p>    /**
     * 构造方法,重要是定义小工具的名称,先容
     */
    function My_Widget_Recent_Comments() {
        $widget_ops = array('classname' => 'my_widget_recent_comments', 'description' => __('表现最新批评内容'));
        $this->WP_Widget('my-recent-comments', __('我的最新批评', 'my'), $widget_ops);
    }</p><p>    /**
     * 小工具的渲染方法,这里就是输出批评
     */
    function widget($args, $instance) {
        global $wpdb, $comments, $comment;</p><p>        $cache = wp_cache_get('my_widget_recent_comments', 'widget');</p><p>        if (!is_array($cache))
            $cache = array();</p><p>        if (!isset($args['widget_id']))
            $args['widget_id'] = $this->id;</p><p>        if (isset($cache[$args['widget_id']])) {
            echo $cache[$args['widget_id']];
            return;
        }</p><p>        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 = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE user_id !=2 and comment_approved = '1' and comment_type not in ('pingback','trackback') ORDER BY comment_date_gmt DESC LIMIT $number");
        $output .= $before_widget;
        if ($title)
            $output .= $before_title . $title . $after_title;</p><p>        $output .= '<ul id="myrecentcomments">';
        if ($comments) {
            // Prime cache for associated posts. (Prime post term cache if we need it for permalinks.)
            $post_ids = array_unique(wp_list_pluck($comments, 'comment_post_ID'));
            _prime_post_caches($post_ids, strpos(get_option('permalink_structure'), '%category%'), false);</p><p>            foreach ((array) $comments as $comment) {
                //头像
                $avatar = get_avatar($comment, 40);
                //作者名称
                $author = get_comment_author();
                //批评内容
                $content = apply_filters('get_comment_text', $comment->comment_content);
                $content = mb_strimwidth(strip_tags($content), 0, '65', '...', 'UTF-8');
                $content = convert_smilies($content);
                //批评的文章
                $post = '<a href="' . esc_url(get_comment_link($comment->comment_ID)) . '">' . get_the_title($comment->comment_post_ID) . '</a>';</p><p>                //这里就是输出的html,可以根据必要自行修改
                $output .= '<li class="comment" style="padding-bottom: 5px; ">
            <div>
                <table class="tablayout"><tbody><tr>
                <td class="tdleft" style="width:55px;vertical-align:top;">' . $avatar . '</td>
                <td class="tdleft" style="vertical-align:top;">
                    <p class="comment-author"><strong><span class="fn">' . $author . '</span></strong> <span class="says">发表在 ' . $post . '</span></p>
                </tr></tbody></table>
            </div>
            <div class="comment-content"><p class="last">' . $content . '</p>
</div>
        </li>';
            }
        }
        $output .= '</ul>';
        $output .= $after_widget;</p><p>        echo $output;
        $cache[$args['widget_id']] = $output;
        wp_cache_set('my_widget_recent_comments', $cache, 'widget');
    }</p><p>}</p><p>//注册小工具
register_widget('My_Widget_Recent_Comments');

在主题目次下的funtions.php文件中加载这个小工具:

复制代码代码如下:
require(get_template_directory().'/../../widgets/comments.php');

2、进入背景管理拖入批评小工具
选择表面->小工具,可以看到批评小工具就加载进来了,如下:



直接将批评小工具拖动到侧边栏就OK了。
小结
有的朋侪大概会担心代码出现什么问题,这个代码是从体系自带的批评小工具中复制过来的,重要是修改批评的获取和批评的表现样式。体系自带的批评小工具代码可以参考/wp-includes/default-widgets.php中的WP_Widget_Recent_Comments类。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作