'widget_post_list_by_category', 'description' => esc_html__( 'Display post list by category', 'passport' ) ); parent::__construct( 'passport_post_list_by_category_widget', esc_html__( 'Passport Post List by Category', 'passport' ), $widget_ops ); $this->alt_option_name = 'widget_post_list_by_category'; add_action( 'wp_enqueue_scripts', array( $this, 'passport_widget_inline_style' ) ); } /** * Styling the widget */ public function passport_widget_inline_style() { $i = 0; $widget_options = get_option( $this->option_name ); $custom_widget_css = ''; if( is_array( $widget_options ) && count( $widget_options ) > 0 ) { foreach ( $widget_options as $key => $widget_option ) { $widget_title_bgcolor_option = isset( $widget_option['widget_title_bgcolor'] ) ? $widget_option['widget_title_bgcolor'] : ''; if ( isset( $widget_title_bgcolor_option ) ) { $custom_widget_css .= "#{$this->id_base}-{$key} .widget-title {"; $custom_widget_css .= ! empty( $widget_title_bgcolor_option ) ? 'background-color:'. $widget_title_bgcolor_option .';' :'background-color: #333333;'; $custom_widget_css .= "}"; $custom_widget_css .= "#{$this->id_base}-{$key} .widget-title span {"; $custom_widget_css .= 'color: #ffffff;'; $custom_widget_css .= "}"; } $i++; } } wp_add_inline_style( PASSPORT_THEME_SLUG . '-custom-style', $custom_widget_css ); } // Creating widget front-end // This is where the action happens public function widget( $args, $instance ) { $title = ! empty( $instance['title'] ) ? $instance['title'] : ''; $number = ! empty( $instance['number'] ) ? absint( $instance['number'] ) : 5; $category_name = ! empty( $instance['category_name'] ) ? $instance['category_name'] : 'uncategories'; $exclude = ! empty( $instance['exclude'] ) ? $instance['exclude'] : ''; $excludeArry = explode( ',', $exclude); $orderby = ! empty( $instance['orderby'] ) ? $instance['orderby'] : 'date'; $order = ! empty( $instance['order'] ) ? $instance['order'] : 'desc'; $layout = ! empty( $instance['layout'] ) ? $instance['layout'] : 'full_1_and_list'; $widget_icon = ! empty( $instance['widget_icon'] ) ? $instance['widget_icon'] : ''; $widget_args = array( 'post_type' => 'post', 'category_name' => $category_name, 'posts_per_page' => $number, 'orderby' => $orderby, 'order' => $order, 'post__not_in' => $excludeArry ); $frontpage_id = get_option( 'page_on_front' ); $attachment_id = get_post_thumbnail_id( $frontpage_id ); $wp_query = new WP_Query( $widget_args ); ?> have_posts() ) : ?> '. $title .''; } ?> '', 'number' => 5, 'category_name' => 'uncategories', 'exclude' => '', 'orderby' => 'date', 'order' => 'desc', 'layout' => 'full_1_and_list', 'widget_icon' => '', 'widget_title_bgcolor' => '#333333' ) ); $title = $instance['title']; $number = $instance['number']; $exclude = $instance['exclude']; $orderby = $instance['orderby']; $order = $instance['order']; $widget_icon = $instance['widget_icon']; $widget_title_bgcolor = $instance['widget_title_bgcolor']; // Widget admin form ?>





slug . ''; } $orderbyArry = array( 'none', 'date', 'author', 'title', 'name', 'parent', 'type', 'modified', 'rand' ); $orderArry = array( 'desc', 'asc' ); $layoutArry = array( 'full', 'full_1_and_thumbnail_list', 'full_1_and_list', 'list_only' ); //Update new instances $instance['title'] = wp_filter_nohtml_kses( $new_instance['title']); $instance['show_widget_title'] = ! empty( $new_instance['show_widget_title'] ) ? (bool) $new_instance['show_widget_title'] : false; $instance['number'] = (int) $new_instance['number']; if ( in_array( $new_instance['category_name'], $catsArray ) ) { $instance['category_name'] = $new_instance['category_name']; } else { $instance['category_name'] = 'uncategories'; } $instance['exclude'] = wp_filter_nohtml_kses( $new_instance['exclude'] ); if ( in_array( $new_instance['orderby'], $orderbyArry ) ) { $instance['orderby'] = $new_instance['orderby']; } else { $instance['orderby'] = 'date'; } if ( in_array( $new_instance['order'], $orderArry ) ) { $instance['order'] = $new_instance['order']; } else { $instance['order'] = 'desc'; } if ( in_array( $new_instance['layout'], $layoutArry ) ) { $instance['layout'] = $new_instance['layout']; } else { $instance['layout'] = 'full_1_and_list'; } $instance['widget_icon'] = wp_filter_nohtml_kses( $new_instance['widget_icon'] ); $instance['widget_title_bgcolor'] = wp_filter_nohtml_kses( $new_instance['widget_title_bgcolor'] ); return $instance; } } // Class widget ends here // Register and load the widget function passport_post_list_by_category_load_widget() { register_widget( 'Passport_Post_List_By_Category_Widget' ); } add_action( 'widgets_init', 'passport_post_list_by_category_load_widget' );