defaults = array( 'title' => esc_html__( "What's rising", 'digimag-lite' ), 'tag_name' => '', 'use_current_cat' => 0, 'column_number' => 3, 'post_number' => 6, ); parent::__construct( 'digimag-popular-posts', esc_html__( 'Digimag: Popular Posts', 'digimag-lite' ), array( 'classname' => 'digimag-popular-posts to-be-replaced', // This will be replaced by the column number. 'description' => esc_html__( 'A widget that displays your popular posts based on the tag you choose', 'digimag-lite' ), ) ); } /** * How to display the widget on the screen. * * @param array $args Widget parameters. * @param array $instance Widget instance. */ public function widget( $args, $instance ) { $instance = wp_parse_args( $instance, $this->defaults ); $use_current_cat = $instance['use_current_cat']; $post_number = $instance['post_number']; $title = $instance['title']; $column_number = $instance['column_number']; $class = 'column-' . $column_number; $args['before_widget'] = str_replace( 'to-be-replaced', $class, $args['before_widget'] ); $tag = $instance['tag_name']; if ( empty( $tag ) ) { return; } $term = get_term_by( 'name', $tag, 'post_tag' ); if ( $term ) { $tag_id = $term->term_id; } else { $new_tag = wp_insert_term( $tag, 'post_tag' ); $tag_id = ( isset( $new_tag['term_id'] ) ) ? $new_tag['term_id'] : ''; } $arguments = array( 'posts_per_page' => $post_number, 'tag_id' => $tag_id, ); $cat_id = get_queried_object_id(); if ( $use_current_cat && ! empty( $cat_id ) ) { $arguments['cat'] = $cat_id; } $query = new WP_Query( $arguments ); if ( $query->have_posts() ) { echo $args['before_widget']; // WPCS: XSS OK. echo $args['before_title'] . $title . $args['after_title']; // WPCS: XSS OK. echo '
class="widefat" id="get_field_id( 'use_current_cat' ) ); ?>" name="get_field_name( 'use_current_cat' ) ); ?>">