我目前正在使用Woocommerce爲WordPress網站構建我自己的自定義高級搜索功能。您應該可以使用過濾器來搜索:WooCommerce使用WP_Query在價格範圍內搜索產品
- 類別
- 最大/最小价格
我目前的進展是附在下面。這使您能夠在URL參數中指定分類段落。返回的將是匹配的帖子:
/**
* Default arguments
* @var array
*/
$query = array(
'post_status' => 'publish',
'post_type' => 'product',
'posts_per_page' => 10,
);
/**
* Category search
*/
if(isset($_GET['categories']) && $_GET['categories']) {
/**
* Comma seperated --- explode
* @var [type]
*/
$categories = explode(',', $_GET['categories']);
/**
* Add "or" parameter
*/
$query['tax_query']['relation'] = 'OR';
/**
* Add terms
*/
foreach($categories as $category) {
$query['tax_query'][] = array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => $category,
);
}
}
/**
* Fetch
*/
$wp_query = new WP_Query($query);
現在,而當你要搜索的類別,似乎它獲得的方式更加複雜,當你需要通過價格來搜索這個偉大工程。
在原始SQL,像下面將工作:
SELECT DISTINCT ID, post_parent, post_type FROM $wpdb->posts
INNER JOIN $wpdb->postmeta ON ID = post_id
WHERE post_type IN ('product', 'product_variation') AND post_status = 'publish' AND meta_key = '_price' AND meta_value BETWEEN 200 AND 1000
我不知道我怎麼能實現這個使用WP_Query。
啊,offcourse .. :) – 2015-02-06 14:47:03