defaults = array( 'title' => esc_html__( 'Featured Post', 'digimag-lite' ), 'tag_name' => '', 'type' => 'slider', 'post_number' => 5, 'title_length' => 0, 'hide_category' => false, ); parent::__construct( 'digimag-featured-posts', esc_html__( 'Digimag: Featured Posts', 'digimag-lite' ), array( 'classname' => 'digimag-featured to-be-replaced', // This will be replaced by the type. 'description' => esc_html__( 'A widget that displays your featured 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 ); $type = $instance['type']; $post_number = $instance['post_number']; $title = $instance['title']; $title_length = $instance['title_length']; $hide_category = $instance['hide_category']; $type = ( 'slider' === $type ) ? 'slider is-hidden' : 'single'; $args['before_widget'] = str_replace( 'to-be-replaced', 'digimag-featured-' . $type, $args['before_widget'] ); $class = array( 'featured-item' ); if ( $hide_category ) { $class[] = 'is-hidden-category'; } $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'] : ''; } $post_number = 'slider is-hidden' === $type ? $post_number : 1; $arguments = array( 'posts_per_page' => $post_number, 'tag_id' => $tag_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 '