esc_html__('Category Tabbed', 'allure-news'), 'post-number' => 5, ); return $defaults; } public function __construct() { $opts = array( 'classname' => 'allure-news-category-tabbed', 'description' => esc_html__('Category Tabbed Widget for multiple content.', 'allure-news'), ); parent::__construct('allure-news-category-tabbed', esc_html__('Allure News Category Tabbed', 'allure-news'), $opts); } //Frontend Display public function widget( $args, $instance ) { $instance = wp_parse_args( (array) $instance, $this->defaults() ); $title = apply_filters('widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base); echo $args['before_widget']; if (!empty($title)) { echo $args['before_title'] . ('' .esc_html($title) .'') . $args['after_title']; } $post_number = !empty($instance['post-number']) ? $instance['post-number'] : ''; ?> '; // Create tabs echo '
    '; foreach ($categories as $category) { $cateID = $category->cat_ID; echo '
  • ' . $category->name . '
  • '; } echo '
'; // Create content for each tab foreach ($categories as $category) { $cateID = $category->cat_ID; ?>
    'post', 'posts_per_page' => $post_number, 'ignore_sticky_posts' => true, 'cat' => $cateID ); $p_query = new WP_Query($p_query_args); while ($p_query->have_posts()): $p_query->the_post(); ?>
'; ?> defaults() ); $title = esc_attr($instance['title']); $post_number = absint( $instance['post-number'] ); ?>