<?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; } }