'ahncommerce_widget_recent_entries', 'description' => __( 'Your site’s most recent posts.', 'ahncommerce' ), 'customize_selective_refresh' => true, 'show_instance_in_rest' => true, ); parent::__construct( 'ahncommerce-recent-posts', __( 'AhnCommerce Recent Posts', 'ahncommerce' ), $widget_ops ); $this->alt_option_name = 'widget_recent_entries'; } /** * Outputs the content for the current Recent Posts widget instance. * * @since 1.0.0 * * @param array $args Display arguments including 'before_title', 'after_title', * 'before_widget', and 'after_widget'. * @param array $instance Settings for the current Recent Posts widget instance. */ public function widget( $args, $instance ) { if ( ! isset( $args['widget_id'] ) ) { $args['widget_id'] = $this->id; } $title = ! empty( $instance['title'] ) ? $instance['title'] : __( 'Recent Posts', 'ahncommerce' ); $title = apply_filters( 'widget_title', $title, $instance, $this->id_base ); $number = ! empty( $instance['number'] ) ? absint( $instance['number'] ) : 5; $query_args = apply_filters( 'widget_posts_args', array( 'posts_per_page' => $number, 'no_found_rows' => true, 'post_status' => 'publish', 'ignore_sticky_posts' => true, ), $instance ); $r = new WP_Query( $query_args ); if ( ! $r->have_posts() ) { return; } echo $args['before_widget']; if ( $title ) { echo $args['before_title'] . esc_html( $title ) . $args['after_title']; } ?>