'atom-builder-posts-widget', 'description' => esc_html__( 'Displays a set of posts in your sidebar or other widgetized area.', 'atom-builder' ), 'customize_selective_refresh' => true, ) ); // Enqueue style if widget is active (appears in a sidebar) or if in Customizer preview. if ( is_active_widget( false, false, $this->id_base ) || is_customize_preview() ) { add_action( 'wp_enqueue_scripts', array( $this, 'atom_builder_widget_enqueue_scripts' ) ); } } /** * Front-end display of widget. * * @see WP_Widget::widget() * * @param array $args Widget arguments. * @param array $instance Saved values from database. */ public function widget( $args, $instance ) { // Merge defaults arguments with user-submitted settings of the instance $defaults = $this->atom_builder_get_posts_widget_default_settings(); $instance = wp_parse_args( $instance, $defaults ); $category_ids = get_categories( array( 'fields' => 'ids' ) ); // Echo the standard widget wrapper and title echo $args['before_widget']; if ( ! empty( $instance['title'] ) ) { echo $args['before_title'] . esc_html( apply_filters( 'widget_title', $instance['title'] ) ) . $args['after_title']; } // Setup our posts query $query_args = array( 'posts_per_page' => absint( $instance['num_posts'] ), 'post_type' => 'post', 'ignore_sticky_posts' => 1, ); if ( ! empty( $instance['categories'] ) && $instance['categories'] != $category_ids ){ $query_args['category__in'] = $instance['categories']; } $query = new WP_Query( $query_args ); // Load the template if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); atom_builder_get_widget_template( $instance, 'widget-posts' ); endwhile; endif; wp_reset_postdata(); // Close the wrapper echo $args['after_widget']; } /** * Back-end widget form. * * @see WP_Widget::form() * * @param array $instance Previously saved values from database. */ public function form( $instance ) { // Merge defaults arguments with user-submitted settings of the instance $defaults = $this->atom_builder_get_posts_widget_default_settings(); $instance = wp_parse_args( $instance, $defaults ); $categories = get_categories( array( 'fields' => 'id=>name' ) ); ?>




$name ) : ?>

'', 'num_posts' => 3, 'categories' => get_categories( array( 'fields' => 'ids' ) ), 'display_meta' => 1, 'display_thumbnail' => 1, 'display_excerpt' => 1, ); return apply_filters( 'atom_builder_posts_widget_default_settings', $defaults ); } /** * Enqueues basic layout styles for this widget. **/ public function atom_builder_widget_enqueue_scripts() { // Enqueue minified styles by default. Enqueue unminified styles if WP_DEBUG is set to true $suffix = '.min'; if ( defined( 'WP_DEBUG' ) && 1 == constant( 'WP_DEBUG' ) ) { $suffix = ''; } wp_enqueue_style( 'atom-builder-posts-widget-styles', plugins_url( 'css/atom-builder-posts-widget' . $suffix . '.css', __FILE__ ), array(), null ); } }