__( '根据设置可以显示不同的评论', 'Bing' ) ) ); $this->default_instance = array( 'title' => __( '评论', 'Bing' ), 'number' => 5, 'exclude_users' => array(), 'exclude_administrator' => false, 'exclude_posts' => array(), 'descending' => true, 'date_limit' => 'unlimited' ); } //小工具内容 function widget( $args, $instance ){ if( empty( $instance ) ) $instance = $this->default_instance; $title = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base ); echo $args['before_widget']; if( !empty( $title ) ) echo $args['before_title'] . $title . $args['after_title']; $exclude_users = $instance['exclude_users']; if( $instance['exclude_administrator'] ){ $administrator_ids = array_map( 'absint', get_users( 'fields=ids&role=administrator' ) ); $exclude_users = array_unique( array_merge( $instance['exclude_users'], $administrator_ids ) ); } $date_query = $instance['date_limit'] == 'unlimited' ? null : array( 'after' => $instance['date_limit'] ); $comments = get_comments( array( 'number' => $instance['number'], 'author__not_in' => $exclude_users, 'post__not_in' => $instance['exclude_posts'], 'order' => $instance['descending'] ? 'DESC' : 'ASC', 'date_query' => $date_query, 'status' => 'approve', 'type' => 'comment' ) ); if( empty( $comments ) ): ?>

'; foreach( $comments as $comment ): $a_title = sprintf( __( '发表在《%s》', 'Bing' ), get_the_title( $comment->comment_post_ID ) ); ?>
  • '; endif; echo $args['after_widget']; } //保存设置选项 function update( $new_instance, $old_instance ){ $instance = array(); //标题 $instance['title'] = strip_tags( $new_instance['title'] ); //评论数量 $instance['number'] = absint( $new_instance['number'] ); if( $instance['number'] === 0 ) $instance['number'] = 1; //排除用户 $instance['exclude_users'] = array_map( 'absint', (array) $new_instance['exclude_users'] ); if( !empty( $instance['exclude_users'] ) ){ $instance['exclude_users'] = get_users( array( 'include' => $instance['exclude_users'], 'fields' => 'ids' ) ); $instance['exclude_users'] = array_map( 'absint', $instance['exclude_users'] ); } //排除所有管理员 $instance['exclude_administrator'] = !empty( $new_instance['exclude_administrator'] ); //排除文章 $instance['exclude_posts'] = array_map( 'absint', (array) $new_instance['exclude_posts'] ); if( !empty( $instance['exclude_posts'] ) ) $instance['exclude_posts'] = get_posts( array( 'post__in' => $instance['exclude_posts'], 'nopaging' => true, 'post_type' => 'post', 'post_status' => array( 'publish', 'future' ), 'fields' => 'ids', 'update_post_meta_cache' => false, 'update_post_term_cache' => false ) ); //倒序排列 $instance['descending'] = !empty( $new_instance['descending'] ); //日期限制 $all_date_limit = array( 'unlimited', '1 day ago', '3 day ago', '1 week ago', '1 month ago', '3 month ago', '6 month ago', '1 year ago', '2 year ago', '3 year ago' ); $instance['date_limit'] = in_array( $new_instance['date_limit'], $all_date_limit ) ? $new_instance['date_limit'] : 'unlimited'; return $instance; } //设置表单 function form( $instance ){ $instance = wp_parse_args( $instance, $this->default_instance ); $users = get_users( array( 'orderby' => 'registered', 'fields' => array( 'ID', 'display_name' ) ) ); $date_limit = array( 'unlimited' => __( '无限制', 'Bing' ), '1 day ago' => __( '一天之内', 'Bing' ), '3 day ago' => __( '三天之内', 'Bing' ), '1 week ago' => __( '一周之内', 'Bing' ), '1 month ago' => __( '一个月之内', 'Bing' ), '3 month ago' => __( '三个月之内', 'Bing' ), '6 month ago' => __( '半年之内', 'Bing' ), '1 year ago' => __( '一年之内', 'Bing' ), '2 year ago' => __( '两年之内', 'Bing' ), '3 year ago' => __( '三年之内', 'Bing' ) ); ?>

    />

    />