是的,我有read through the entire wpdbezSQL,所以我对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/

10-13 04:48