您好,欢迎来到菜鸟吧源码网-本站资源仅供学习与参考,禁止用于商业或违法行为!
  • 首 页
  • 下载APP
  • 公告:菜鸟吧APP于2024.9.15正式上线,请首页右上角进入下载,本站资源均来源于互联网及会员投稿发布,所有资源仅供学习参考研究使用,请勿商用或其它非法用途,商用请购买正版,否则产生一切后果由用户自行承担!谢谢!

     

    当前位置:主页 > 站长学堂 > WP教程 >
    最新版WordPress小工具制作
    时间:2019-10-15 15:06 作者:菜鸟哥 浏览:收藏 挑错 打印

    本文实例讲述了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的程序设计有所帮助。

    郑重声明:
    本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
    我们不承担任何技术及版权问题,且不对任何资源负法律责任。
    如无法下载,联系站长索要。
    如有侵犯您的版权,请给我们来信:cainiaovip8@qq.com,我们尽快处理。

    用wordpress制作网站的遇到的问题总结用wordpress制作网站的遇到的问题总结
    WordPress自定义多个侧栏教程WordPress自定义多个侧栏教程
    最新版WordPress小工具制作最新版WordPress小工具制作