是的,我有read through the entire wpdb和ezSQL,所以我对wpdb类可以做什么有很好的了解...本质上,wpdb对SQL来说像jQuery对Javascript一样!
正如我以前从未做过的那样,我不会因为不尝试使用SQL而感到难过,但这是我今天所做的证明,尽管后来我读到AND和OR不能在WP_Query中使用: \
最终结果应该是,如果用户从ProductType下拉列表中选择并单击搜索按钮,则页面应从选择菜单中基于该术语返回结果。如果他们从ProductGroup中选择一个选项并单击搜索按钮,则需要根据选择返回结果。
如果两个下拉菜单都选择了选项,则需要同时查询ProductType和ProductGroup并返回结果。
$args = array(
'post_type' => 'product',
'posts_per_page' => -1,
'orderby' => 'title',
'order' => 'ASC',
'relation'=>'AND', // or OR
'relation'=>'OR', // this is naturally not correct
'meta_query' => array(
array(
'key' => 'product_type',
'value' => $ProductType,
'compare' => 'LIKE'
),
array(
'key' => 'product_group',
'value' => $ProductGroup,
'compare' => 'LIKE'
)
)
);
<form name="x" action="" method="GET" class="search-results-form" >
<select name="productType" class="search-product-type">
<option value="">Product Type</option>
<option value="ProductType1">ProductType1</option>
<option value="ProductType2">ProductType2</option>
</select>
<select name="productGroup" class="search-product-type">
<option value="">Product Type</option>
<option value="ProductGroup1">ProductGroup1</option>
<option value="ProductGroup2">ProductGroup2</option>
</select>
<input type="submit" value="SEARCH" class="submit-button btn" />
</form>
我希望这是有道理的,因此,如果有人可以给我一个起点,我将不胜感激。
最佳答案
您可以使用如下关系条件:-
$args = array(
'post_type' => 'product',
'posts_per_page' => -1,
'orderby' => 'title',
'order' => 'ASC',
'meta_query' => array(
'relation'=>'AND', // or OR
array(
'key' => 'product_type',
'value' => $ProductType,
'compare' => 'LIKE'
),
array(
'key' => 'product_group',
'value' => $ProductGroup,
'compare' => 'LIKE'
)
)
);
您还可以根据需要更改
relation
。关于php - WordPress wpdb中的AND和OR查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21467874/