function widget($args, $instance)
 {
     extract($args);
     if (function_exists('icl_t')) {
         $instance['title'] = icl_t(VW_THEME_NAME . ' Widget', $this->id . '_title', $instance['title']);
     }
     if (!empty($instance['title'])) {
         $title = apply_filters('widget_title', $instance['title'], $instance, $this->id_base);
     }
     $cat_ids = $instance['cat_ids'];
     $style = $instance['style'];
     $count = intval($instance['count']);
     $order = strip_tags($instance['order']);
     echo $before_widget;
     if ($instance['title']) {
         echo $before_title . $title . $after_title;
     }
     global $post;
     $query_args = array('post_type' => 'post', 'ignore_sticky_posts' => true, 'posts_per_page' => $count, 'order' => 'DESC');
     if (!empty($cat_ids)) {
         $query_args['cat'] = implode(',', $cat_ids);
     }
     if ($order == 'latest_posts') {
         // do nothing, it's a default ordering
     } elseif ($order == 'latest_gallery_posts') {
         $query_args['tax_query'] = array(array('taxonomy' => 'post_format', 'field' => 'slug', 'terms' => array('post-format-gallery')));
     } elseif ($order == 'latest_video_posts') {
         $query_args['tax_query'] = array(array('taxonomy' => 'post_format', 'field' => 'slug', 'terms' => array('post-format-video')));
     } elseif ($order == 'latest_audio_posts') {
         $query_args['tax_query'] = array(array('taxonomy' => 'post_format', 'field' => 'slug', 'terms' => array('post-format-audio')));
     } elseif ($order == 'latest_featured') {
         $query_args['meta_query'][] = array('key' => 'vw_post_featured', 'value' => '1', 'compare' => '=');
     } elseif ($order == 'latest_reviews') {
         $query_args['meta_query'][] = array('key' => 'vw_enable_review', 'value' => '1', 'compare' => '=');
     } elseif ($order == 'most_review_scores') {
         $query_args['orderby'] = 'meta_value_num';
         $query_args['meta_key'] = 'vw_review_average_score';
         $query_args['meta_query'][] = array('key' => 'vw_enable_review', 'value' => '1', 'compare' => '=');
     } elseif ($order == 'most_viewed') {
         $query_args['orderby'] = 'meta_value_num';
         $query_args['meta_key'] = 'vw_post_views';
     }
     query_posts(apply_filters('vw_filter_widget_latest_posts_query', $query_args, $args['widget_id']));
     $template_file = vw_build_template_path('templates/post-box/post-layout-%s.php', $style);
     unset($title);
     // Avoid double title
     include locate_template($template_file, false, false);
     wp_reset_query();
     echo $after_widget;
 }
Beispiel #2
0
 function vw_shortcode_posts($atts, $content = null)
 {
     $defaults = array('title' => '', 'cat' => '', 'cat_name' => '', 'cat_exclude' => '', 'tag' => '', 'format' => '', 'featured' => '', 'layout' => 'boxed', 'count' => '6', 'order' => 'latest');
     extract(shortcode_atts($defaults, $atts));
     global $post;
     $query_args = array('post_type' => 'post', 'ignore_sticky_posts' => true, 'posts_per_page' => $count, 'order' => 'DESC');
     if (!empty($cat_name)) {
         $query_args['category_name'] = $cat_name;
         if (!empty($title)) {
             $category = get_category_by_slug($cat_name);
             $title = '<span class="' . vw_get_the_category_class($category->term_id) . '">' . $title . '</span>';
         }
     }
     if (!empty($cat)) {
         $query_args['cat'] = $cat;
         if (!empty($title)) {
             $title = '<span class="' . vw_get_the_category_class($cat) . '">' . $title . '</span>';
         }
     }
     if (!empty($cat_exclude)) {
         $query_args['category__not_in '] = $cat_exclude;
     }
     if (!empty($tag)) {
         $query_args['tag__in'] = $tag;
     }
     if (!empty($format)) {
         $query_args['tax_query'][] = array('taxonomy' => 'post_format', 'field' => 'slug', 'terms' => sprintf('post-format-%s', strtolower($format)));
     }
     if (!empty($featured)) {
         $query_args['meta_query'][] = array('key' => 'vw_post_featured', 'value' => '1', 'compare' => '=');
     }
     if ('latest' == $order) {
         $query_args['orderby'] = 'post_date';
     } elseif ('random' == $order) {
         $query_args['orderby'] = 'rand';
     } elseif ('popular' == $order) {
         $query_args['orderby'] = 'meta_value_num';
         $query_args['meta_key'] = 'vw_post_likes';
     } elseif ('viewed' == $order) {
         $query_args['orderby'] = 'meta_value_num';
         $query_args['meta_key'] = 'vw_post_views';
     } elseif ('reviews' == $order) {
         $query_args['orderby'] = 'meta_value_num';
         $query_args['meta_key'] = 'vw_review_average_score';
     }
     query_posts($query_args);
     $template_file = vw_build_template_path('templates/post-box/post-layout-%s.php', $layout);
     ob_start();
     include locate_template($template_file, false, false);
     wp_reset_query();
     return ob_get_clean();
 }