'lptw_recent_posts_fluid_images_widget', 'description' => __( "Your site’s most recent Posts. Displays big fluid images, post date ant title.", 'lptw_recent_posts_domain') ); parent::__construct('lptw-fluid-images-recent-posts', __('Recent Posts Widget (Fluid Images)', 'lptw_recent_posts_domain'), $widget_ops); $this->alt_option_name = 'lptw_widget_fluid_images_recent_entries'; add_action( 'save_post', array($this, 'flush_widget_cache') ); add_action( 'deleted_post', array($this, 'flush_widget_cache') ); add_action( 'switch_theme', array($this, 'flush_widget_cache') ); } // Creating widget front-end // This is where the action happens public function widget($args, $instance) { $cache = array(); if ( ! $this->is_preview() ) { $cache = wp_cache_get( 'lptw_recent_posts_fluid_images_widget', 'widget' ); } if ( ! is_array( $cache ) ) { $cache = array(); } if ( ! isset( $args['widget_id'] ) ) { $args['widget_id'] = $this->id; } if ( isset( $cache[ $args['widget_id'] ] ) ) { echo $cache[ $args['widget_id'] ]; return; } ob_start(); $show_widget_title = isset( $instance['show_widget_title'] ) ? $instance['show_widget_title'] : true; $exclude_current_post = isset( $instance['exclude_current_post'] ) ? $instance['exclude_current_post'] : true; $no_thumbnails = isset( $instance['no_thumbnails'] ) ? $instance['no_thumbnails'] : false; $title = ( ! empty( $instance['title'] ) ) ? $instance['title'] : __( 'Recent Posts', 'lptw_recent_posts_domain' ); $title = apply_filters( 'widget_title', $title, $instance, $this->id_base ); $number = ( ! empty( $instance['number'] ) ) ? absint( $instance['number'] ) : 5; if ( ! $number ) {$number = 5;} $reverse_post_order = isset( $instance['reverse_post_order'] ) ? $instance['reverse_post_order'] : false; $show_date = isset( $instance['show_date'] ) ? $instance['show_date'] : true; $date_format = isset( $instance['date_format'] ) ? $instance['date_format'] : 'm/d/Y'; $time_format = isset( $instance['time_format'] ) ? $instance['time_format'] : 'g:i a'; $show_time = isset( $instance['show_time'] ) ? $instance['show_time'] : true; $show_time_before = isset( $instance['show_time_before'] ) ? $instance['show_time_before'] : true; $show_post_title = isset( $instance['show_post_title'] ) ? $instance['show_post_title'] : true; $show_title_before = isset( $instance['show_title_before'] ) ? $instance['show_title_before'] : true; $show_subtitle = isset( $instance['show_subtitle'] ) ? $instance['show_subtitle'] : true; $color_scheme = isset( $instance['color_scheme'] ) ? $instance['color_scheme'] : 'light'; $post_category = isset( $instance['post_category'] ) ? $instance['post_category'] : array(); if (!empty($post_category)) { $post_category_str = implode (',', $post_category); } $same_post_category = isset( $instance['same_post_category'] ) ? $instance['same_post_category'] : false; $authors = isset( $instance['authors'] ) ? $instance['authors'] : array(); $post_type = isset( $instance['post_type'] ) ? $instance['post_type'] : 'post'; /* don't show post in recent if it shows in page */ global $post; if (!empty($post) && $exclude_current_post == true) { $exclude_post = array( $post->ID ); } if ( $post_type != 'post' ) { if (!empty($post_category)) { $tax_query = array('relation' => 'AND'); $taxonomies = get_object_taxonomies($post_type); if (!empty($taxonomies)) { foreach ($taxonomies as $taxonomy) { $tax_array = array('taxonomy' => $taxonomy, 'field' => 'term_id', 'include_children' => false, 'terms' => $post_category); array_push ($tax_query, $tax_array); } } } else { $tax_query = ''; } $post_category = ''; } if ($no_thumbnails == 'on') { $meta_key = '_thumbnail_id'; } else { $meta_key = ''; } /* get the list of the post categories */ if ($same_post_category == true) { $post_categories = get_the_category(); if ( !empty($post_categories) ) { foreach ($post_categories as $category) { if ( $category->taxonomy == 'category' ) { $post_category[] = $category->term_id; } } } } $r = new WP_Query( apply_filters( 'widget_posts_args', array( 'post_type' => $post_type, 'posts_per_page' => $number, 'no_found_rows' => true, 'post_status' => 'publish', 'ignore_sticky_posts' => true, 'post__not_in' => $exclude_post, 'author__in' => $authors, 'category__in' => $post_category, 'tax_query' => $tax_query, 'order' => 'DESC', 'orderby' => 'date', 'meta_key' => $meta_key ) ) ); if ($r->have_posts()) : if ($reverse_post_order == 'true') { $r->posts = array_reverse($r->posts); } ?> is_preview() ) { $cache[ $args['widget_id'] ] = ob_get_flush(); wp_cache_set( 'lptw_recent_posts_fluid_images_widget', $cache, 'widget' ); } else { ob_end_flush(); } } /* --------------------------------- Widget Backend --------------------------------- */ public function form( $instance ) { if ( isset( $instance[ 'title' ] ) ) { $title = esc_attr( $instance[ 'title' ]) ; } else { $title = __( 'Recent posts', 'lptw_recent_posts_domain' ); } if ( isset( $instance[ 'show_widget_title' ] ) ) { $show_widget_title = (bool) $instance[ 'show_widget_title' ]; } else { $show_widget_title = true; } if ( isset( $instance[ 'exclude_current_post' ] ) ) { $exclude_current_post = (bool) $instance[ 'exclude_current_post' ]; } else { $exclude_current_post = true; } if ( isset( $instance[ 'no_thumbnails' ] ) ) { $no_thumbnails = (bool) $instance[ 'no_thumbnails' ]; } else { $no_thumbnails = false; } if ( isset( $instance[ 'number' ] ) ) { $number = absint( $instance[ 'number' ] ); } else { $number = 5; } if ( isset( $instance[ 'reverse_post_order' ] ) ) { $reverse_post_order = (bool) $instance[ 'reverse_post_order' ]; } else { $reverse_post_order = false; } if ( isset( $instance[ 'show_post_title' ] ) ) { $show_post_title = (bool) $instance[ 'show_post_title' ]; } else { $show_post_title = true; } if ( isset( $instance[ 'show_title_before' ] ) ) { $show_title_before = (bool) $instance[ 'show_title_before' ]; } else { $show_title_before = false; } if ( isset( $instance[ 'show_subtitle' ] ) ) { $show_subtitle = (bool) $instance[ 'show_subtitle' ]; } else { $show_subtitle = false; } if ( isset( $instance[ 'show_date' ] ) ) { $show_date = (bool) $instance[ 'show_date' ]; } else { $show_date = false; } if ( isset( $instance[ 'date_format' ] ) ) { $date_format = $instance[ 'date_format' ]; } else { $date_format = 'm/d/Y'; } if ( isset( $instance[ 'time_format' ] ) ) { $time_format = $instance[ 'time_format' ]; } else { $time_format = 'g:i a'; } if ( isset( $instance[ 'show_time' ] ) ) { $show_time = (bool) $instance[ 'show_time' ]; } else { $show_time = false; } if ( isset( $instance[ 'show_time_before' ] ) ) { $show_time_before = (bool) $instance[ 'show_time_before' ]; } else { $show_time_before = false; } if ( isset( $instance[ 'color_scheme' ] ) ) { $color_scheme = $instance[ 'color_scheme' ] ; } else { $color_scheme = 'light'; } if ( isset( $instance[ 'post_category' ] ) ) { $post_category = $instance[ 'post_category' ]; } if ( isset( $instance[ 'same_post_category' ] ) ) { $same_post_category = $instance[ 'same_post_category' ]; } if ( isset( $instance[ 'authors' ] ) ) { $authors = $instance[ 'authors' ]; } if ( isset( $instance[ 'post_type' ] ) ) { $post_type = $instance[ 'post_type' ]; } else { $post_type = 'post_type'; } // Widget admin form ?>

id="get_field_id( 'show_widget_title' ); ?>" name="get_field_name( 'show_widget_title' ); ?>" />

List of categories

If none of the categories is selected - will be displayed posts from all categories.

id="get_field_id( 'same_post_category' ); ?>" name="get_field_name( 'same_post_category' ); ?>" />

'authors' ); $blog_authors = get_users( $authors_args ); ?>

id="get_field_id( 'no_thumbnails' ); ?>" name="get_field_name( 'no_thumbnails' ); ?>" />

id="get_field_id( 'exclude_current_post' ); ?>" name="get_field_name( 'exclude_current_post' ); ?>" />

id="get_field_id( 'reverse_post_order' ); ?>" name="get_field_name( 'reverse_post_order' ); ?>" />

id="get_field_id( 'show_date' ); ?>" name="get_field_name( 'show_date' ); ?>" />

id="get_field_id( 'show_time' ); ?>" name="get_field_name( 'show_time' ); ?>" />

id="get_field_id( 'show_time_before' ); ?>" name="get_field_name( 'show_time_before' ); ?>" />

id="get_field_id( 'show_post_title' ); ?>" name="get_field_name( 'show_post_title' ); ?>" />

id="get_field_id( 'show_title_before' ); ?>" name="get_field_name( 'show_title_before' ); ?>" />

id="get_field_id( 'show_subtitle' ); ?>" name="get_field_name( 'show_subtitle' ); ?>" />

flush_widget_cache(); $alloptions = wp_cache_get( 'alloptions', 'options' ); if ( isset($alloptions['lptw_widget_fluid_images_recent_entries']) ) delete_option('lptw_widget_fluid_images_recent_entries'); return $instance; } public function flush_widget_cache() { wp_cache_delete('lptw_recent_posts_fluid_images_widget', 'widget'); } } // Class wpb_widget ends here ?>