Ejemplo n.º 1
0
 /**
  * The EXTRA Posts (list).
  *
  * @param array $instance The settings for the particular instance of the widget.
  */
 public static function do_extra_posts($instance)
 {
     if (empty($instance['extra_posts']) || empty($instance['extra_num'])) {
         return;
     }
     global $wp_query, $_genesis_displayed_ids;
     $before_title = $instance['widget_args']['before_title'];
     $after_title = $instance['widget_args']['after_title'];
     if (!empty($instance['extra_title'])) {
         echo ThemeMix_Featured_Content::build_tag($before_title) . esc_html($instance['extra_title']) . $after_title;
     }
     $offset = intval($instance['posts_num']) + intval($instance['posts_offset']);
     $extra_posts_args = array_merge($instance['q_args'], array('showposts' => $instance['extra_num'], 'offset' => $offset, 'post_type' => $instance['post_type'], 'orderby' => $instance['orderby'], 'order' => $instance['order'], 'meta_key' => $instance['meta_key']));
     $extra_posts_args = apply_filters('thememix_featured_content_extra_post_args', $extra_posts_args, $instance);
     if (!empty($instance['optimize']) && !empty($instance['custom_field'])) {
         if (!empty($instance['delete_transients'])) {
             ThemeMix_Featured_Content::delete_transient('thememix_featured_content_extra_' . $instance['custom_field']);
         }
         if (false === ($thememix_featured_content_query = ThemeMix_Featured_Content::get_transient('thememix_featured_content_extra_' . $instance['custom_field']))) {
             $thememix_featured_content_query = new WP_Query($extra_posts_args);
             $time = !empty($instance['transients_time']) ? (int) $instance['transients_time'] : 60 * 60 * 24;
             ThemeMix_Featured_Content::set_transient('thememix_featured_content_extra_' . $instance['custom_field'], $thememix_featured_content_query, $time);
         }
     } else {
         $thememix_featured_content_query = new WP_Query($extra_posts_args);
     }
     $optitems = $listitems = '';
     $items = array();
     if ($thememix_featured_content_query->have_posts()) {
         ThemeMix_Featured_Content::action('thememix_featured_content_before_list_items', $instance);
         while ($thememix_featured_content_query->have_posts()) {
             $thememix_featured_content_query->the_post();
             $_genesis_displayed_ids[] = $id = get_the_ID();
             $listitems .= sprintf('<li><a href="%s" title="%s">%s</a></li>', get_permalink(), the_title_attribute('echo=0'), get_the_title());
             $optitems .= sprintf('<option class="%s" value="%s">%s</option>', $id, get_permalink(), get_the_title());
             $items[] = get_post();
         }
         wp_reset_postdata();
         if (strlen($listitems) > 0 && 'drop_down' != $instance['extra_format']) {
             echo apply_filters('thememix_featured_content_list_items', sprintf('<%1$s>%2$s</%1$s>', $instance['extra_format'], $listitems), $instance, $listitems, $items);
         } elseif (strlen($optitems) > 0) {
             printf('<select id="thememix-featured-content-%1$s-extras" onchange="window.location=document.getElementById(\'thememix-featured-content-%1$s-extras\').value;"><option value="none">%2$s</option>%3$s</select>', $instance['custom_field'], __('Select', 'thememix-pro-genesis'), $optitems);
         }
         ThemeMix_Featured_Content::action('thememix_featured_content_after_list_items', $instance);
     }
     //* Restore original query
     wp_reset_query();
 }