Example #1
0
<?php

// custom template for tags
get_header();
?>
<div id="content">
	<?php 
if (class_exists('MarketPress')) {
    ?>
			<h1 class="post-title"><?php 
    _e('Items in tag', 'framemarket');
    ?>
</h1>
			<?php 
    echo mp_products_filter();
    ?>
			<div id="mp-product-grid">
				<?php 
    framemarket_grid_mp_list_products();
    ?>
			<div class="clear"></div>
			</div>
		<?php 
}
?>
</div>
	<?php 
get_sidebar();
get_footer();
 function mp_list_products()
 {
     global $wp_query, $mp;
     $args = $mp->parse_args(func_get_args(), $mp->defaults['list_products']);
     $args['nopaging'] = false;
     $query = array('post_type' => 'product', 'post_status' => 'publish');
     $tax_query = array();
     //setup taxonomies if possible
     if ($wp_query->get('taxonomy') == 'product_category') {
         $tax_query[] = array('taxonomy' => 'product_category', 'field' => 'slug', 'terms' => $wp_query->get('term'));
     } elseif ($wp_query->get('taxonomy') == 'product_tag') {
         $tax_query[] = array('taxonomy' => 'product_tag', 'field' => 'slug', 'terms' => $wp_query->get('term'));
     } elseif (!is_null($args['category']) || !is_null($args['tag'])) {
         if (!is_null($args['category'])) {
             $tax_query[] = array('taxonomy' => 'product_category', 'field' => 'slug', 'terms' => sanitize_title($args['category']));
         }
         if (!is_null($args['tag'])) {
             $tax_query[] = array('taxonomy' => 'product_tag', 'field' => 'slug', 'terms' => sanitize_title($args['tag']));
         }
     }
     if (count($tax_query) > 1) {
         $query['tax_query'] = array_merge(array('relation' => 'AND'), $tax_query);
     } elseif (count($tax_query) == 1) {
         $query['tax_query'] = $tax_query;
     }
     //setup pagination
     if (!is_null($args['paginate']) && !$args['paginate'] || is_null($args['paginate']) && !$mp->get_setting('paginate')) {
         $query['nopaging'] = $args['nopaging'] = true;
     } else {
         //figure out perpage
         if (!is_null($args['per_page'])) {
             $query['posts_per_page'] = intval($args['per_page']);
         } else {
             $query['posts_per_page'] = intval($mp->get_setting('per_page'));
         }
         //figure out page
         if (!is_null($args['page'])) {
             $query['paged'] = intval($args['page']);
         } elseif ($wp_query->get('paged') != '') {
             $query['paged'] = $args['page'] = intval($wp_query->get('paged'));
         }
         //get order by
         if (is_null($args['order_by'])) {
             if ('price' == $mp->get_setting('order_by')) {
                 $query['meta_key'] = 'mp_price_sort';
                 $query['orderby'] = 'meta_value_num';
             } elseif ('sales' == $mp->get_setting('order_by')) {
                 $query['meta_key'] = 'mp_sales_count';
                 $query['orderby'] = 'meta_value_num';
             } else {
                 $query['orderby'] = $mp->get_setting('order_by');
             }
         } else {
             if ('price' == $args['order_by']) {
                 $query['meta_key'] = 'mp_price_sort';
                 $query['orderby'] = 'meta_value_num';
             } else {
                 if ('sales' == $args['order_by']) {
                     $query['meta_key'] = 'mp_sales_count';
                     $query['orderby'] = 'meta_value_num';
                 } else {
                     $query['orderby'] = $args['order_by'];
                 }
             }
         }
     }
     //get order direction
     if (is_null($args['order'])) {
         $query['order'] = $mp->get_setting('order');
     } else {
         $query['order'] = $args['order'];
     }
     //The Query
     $custom_query = new WP_Query($query);
     // get layout type for products
     if (is_null($args['list_view'])) {
         $layout_type = $mp->get_setting('list_view');
     } else {
         $layout_type = $args['list_view'] ? 'list' : 'grid';
     }
     $content = '';
     if (defined('DOING_AJAX') && DOING_AJAX) {
         //do nothing
     } else {
         $per_page = is_null($args['per_page']) ? null : $args['per_page'];
         $content .= is_null($args['filters']) && 1 == $mp->get_setting('show_filters') || $args['filters'] ? mp_products_filter(false, $per_page, $args['category'], $args['order_by'], $args['order']) : mp_products_filter(true, $per_page, $args['category'], $args['order_by'], $args['order']);
     }
     $content .= '<div id="mp_product_list" class="hfeed mp_' . $layout_type . '">';
     if ($last = $custom_query->post_count) {
         $content .= $layout_type == 'grid' ? _mp_products_html_grid($custom_query) : _mp_products_html_list($custom_query);
     } else {
         $content .= '<div id="mp_no_products">' . apply_filters('mp_product_list_none', __('No Products', 'mp')) . '</div>';
     }
     $content .= '</div>';
     $content .= !$args['nopaging'] ? mp_products_nav(false, $custom_query) : '';
     $content = apply_filters('mp_list_products', $content, $args);
     if ($args['echo']) {
         echo $content;
     } else {
         return $content;
     }
 }