• 售前

  • 售后

热门帖子
入门百科

WordPress小工具制作方法【附近期批评工具制作】

[复制链接]
123456879 显示全部楼层 发表于 2021-8-15 19:24:00 |阅读模式 打印 上一主题 下一主题
本文实例报告了WordPress小工具制作方法。分享给各人供各人参考,具体如下:
WordPress是一个拥有着无与伦比拓展性的软件,它的侧边栏小工具很是方便。但是默认的那几个小工具完全不够用,或者说样式根本根本不能满足需要。本日就讲解一下如何制作一个小工具,然后接下来再给出一个批评小工具的制作实例。
小工具有三个部分,后台表现、数据生存、前台表现。固然假如你的小工具不需要在后台设置什么数据,那数据生存可以省掉了。一般来讲,一个小工具至少应该有这三个部分。
小工具是一个类,像侧边栏一样,你还得用代码注册它,它在能在后台利用。

复制代码代码如下://界说小工具类PostViews
class PostViews extends WP_Widget{
    function PostViews(){
        //这是界说小工具信息的函数,也是类的构建函数
    }
    function form($instance){
        //这是表单函数,也就是控制后台表现的
    }
    function update($new_instance,$old_instance){
        //这是更新数据函数,小工具假如有设置选项,就需要生存更新数据
    }
    function widget($args,$instance){
        //这是控制小工具前台表现的函数
    }
}
function PostViews(){
    //注册小工具
    register_widget('PostViews');
}
//widges_init,小工具初始化的时间实行PostViews函数,
add_action('widgets_init','PostViews');
根据代码可知道,重要是继承WordPress的WP_Widget类,并且重载内里的函数,以此来达到自界说小工具的目的。
附:近期批评工具制作
WordPress其实自带有一个近期批评的小工具,但是那个只有表现谁在哪篇文章上面批评了,非常丢脸,根本不能满足我们的需要。这次来分析的小工具可以表现用户头像,批评内容,已经时间等各方面有效的信息。
还是和前面一样,继承 WP_Widget_Recent_Comments 类,代码:

复制代码代码如下:/**
* 继承WP_Widget_Recent_Comments
* 这样就只需要重写widget方法就可以了
*/
class My_Widget_Recent_Comments extends WP_Widget_Recent_Comments {
     /**
     * 构造方法,重要是界说小工具的名称,先容
     */
     function My_Widget_Recent_Comments() {
        $widget_ops = array('classname' => 'widget_recent_comment', 'description' => __('表现最新批评内容'));
        $this->WP_Widget('my-recent-comments', __('我的最新批评', 'my'), $widget_ops);
    }
    /**
     * 小工具的渲染方法,这里就是输出批评
     */
    function widget($args, $instance) {
        global $wpdb, $comments, $comment;
        $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;
        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);
            foreach ((array) $comments as $comment) {
                //头像
                $avatar = get_avatar($comment, 40);
                //作者名称
                $author = get_comment_author();
                //批评内容
                $content = apply_filters('get_comment_text', $comment->comment_content);
                $content = convert_smilies($content);
                //批评的文章
                $post = '' . get_the_title($comment->comment_post_ID) . '';
                //这里就是输出的html,可以根据需要自行修改
                $output .= ''
            }
        }
        $output .= $after_widget;
        echo $output;
        $cache[$args['widget_id']] = $output;
        wp_cache_set('my_widget_recent_comments', $cache, 'widget');
    }
}
完了之后还要注册小工具,这样就可以在后台拖动了

复制代码代码如下://注册小工具
register_widget('My_Widget_Recent_Comments');
盼望本文所述对各人基于wordpress的步伐设计有所资助。

帖子地址: 

回复

使用道具 举报

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

本版积分规则

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

  • 微信公众号

  • 商务合作