将两个查询参数合并为一个WP_QUERY调用

时间:2015-08-09 作者:adi

我正在覆盖WooCommerce的默认搜索查询,以包括按SKU进行的搜索。

// default search query
$query_default_search = new WP_Query(
    array(
        "post_type" => "product",
        "s" => $search_query
    )
);

// SKU query
$query_search_by_sku = new WP_Query(
    array(
        "post_type" => "product",
        "meta_query" => array(
            array(
                "key" => "_sku",
                "value" => $search_query,
                "compare" => "LIKE"
            )
        )
    )
);
如果默认搜索查询没有返回任何帖子,我假设输入了SKU,然后运行SKU查询。但是,我想将两个查询参数合并为一个WP_Query 调用,而不是使用array_merge.如果两个查询都有元查询,我可以使用OR关系,但这是不同的。

如何做到这一点?

2 个回复
SO网友:Noman

What about this ?

$query_withMeta_search = new WP_Query(
    array(
        "post_type" => "product",
        "s" => $search_query,
        "meta_query" => array(
                "key" => "_sku",
                "value" => $search_query,
                "compare" => "LIKE"
        )
    )
);
SO网友:Simon

在运行之前,创建要整体使用的阵列。类似于

if($search_query) {
     // create the basic query array
} else {
     // create the more advanced query array
}

// then run the query on the one you want
new WP_Query($args);
希望这有帮助。

结束

相关推荐

Query Posts by Custom Field

我希望通过我在页面上创建的自定义字段查询我的帖子。但自定义字段是一个值数组。所以自定义字段“country”可以如下所示country => usa,africa,united kingdom,poland 让我困惑的是如何使用自定义字段来查询帖子,该字段是一个用分隔的数组\',\'?我在这里尝试了很多解决方案,但都没有成功。如有任何建议,将不胜感激!