【发布时间】:2016-09-05 01:57:33
【问题描述】:
这是我的查询:
$args = array(
'post_type' => $post_type,
'posts_per_page' =>-1,
'post_status' => 'publish',
'orderby' => 'meta_value_num',
'meta_key' => $order_key,
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => $taxonomy1,
'field' => 'id',
'terms' => $type,
'operator'=> $type_operator,
'include_children' => false
),
array(
'taxonomy' => $taxonomy2,
'field' => 'id',
'terms' => $location,
'operator'=> $location_operator,
'include_children' => false
),
),
);
$query = new WP_Query( $args );
var_dump($query);
但是当我检查 var_dump 时,它是:
object(WP_Query)#492 (48) {
["query"]=>
array(6) {
["post_type"]=>
string(12) "$post_type"
["posts_per_page"]=>
int(-1)
["post_status"]=>
string(7) "publish"
["orderby"]=>
string(14) "meta_value_num"
["meta_key"]=>
string(18) "$order_key"
["tax_query"]=>
array(3) {
["relation"]=>
string(3) "AND"
[0]=>
array(5) {
["taxonomy"]=>
string(20) "$taxonomy1"
["field"]=>
string(2) "id"
["terms"]=>
string(3) "819"
["operator"]=>
string(2) "IN"
["include_children"]=>
bool(false)
}
[1]=>
array(5) {
["taxonomy"]=>
string(18) "$taxonomy2"
["field"]=>
string(2) "id"
["terms"]=>
string(3) "167"
["operator"]=>
string(2) "IN"
["include_children"]=>
bool(false)
}
}
}
["query_vars"]=>
array(68) {
["post_type"]=>
string(12) "$post_type"
["posts_per_page"]=>
int(-1)
["post_status"]=>
string(7) "publish"
["orderby"]=>
string(14) "meta_value_num"
["meta_key"]=>
string(18) "$order_key"
["tax_query"]=>
array(3) {
["relation"]=>
string(3) "AND"
[0]=>
array(5) {
["taxonomy"]=>
string(20) "$taxonomy1"
["field"]=>
string(2) "id"
["terms"]=>
string(3) "819"
["operator"]=>
string(2) "IN"
["include_children"]=>
bool(false)
}
[1]=>
array(5) {
["taxonomy"]=>
string(18) "$taxonomy2"
["field"]=>
string(2) "id"
["terms"]=>
string(3) "167"
["operator"]=>
string(2) "IN"
["include_children"]=>
bool(false)
}
}
["date_query"]=>
bool(false)
["request"]=>
string(901) "SELECT wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_relationships AS tt1 ON (wp_posts.ID = tt1.object_id) INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) WHERE 1=1 AND (
wp_term_relationships.term_taxonomy_id IN (819)
AND
tt1.term_taxonomy_id IN (167)
) AND (
wp_postmeta.meta_key = '$order_key'
) AND wp_posts.post_type = '$post_type' AND ((wp_posts.post_status = 'publish')) AND ( wp_posts.post_title LIKE '%$search%' OR wp_posts.ID IN ( SELECT post_id FROM wp_postmeta WHERE meta_value LIKE '%$search%' ) OR wp_posts.ID IN ( SELECT object_id FROM wp_term_relationships AS tr LEFT JOIN wp_terms AS t ON tr.term_taxonomy_id = t.term_id WHERE t.name LIKE '%$search%' ) OR wp_posts.post_content RLIKE '[[:<:]]$search[[:>:]]' ) GROUP BY wp_posts.ID ORDER BY wp_postmeta.meta_value+0 DESC "
以上查询正在使用自定义挂钩在搜索结果页面上运行。但我试图根据用户(分类 1 和分类 2)给出的输入显示自定义帖子类型。这些结果将显示在正常搜索结果之前。
除了搜索关键字自动添加到 WP_Query 之外,一切都很好。我没有在参数中包含“s”,但在最终查询中,它就在那里。请任何人帮助我如何避免搜索词包含在 WP_Query 中。
提前致谢。
【问题讨论】:
-
你运行了吗 脚本中的任何位置?也许在您的查询之前或之后?参考:codex.wordpress.org/Function_Reference/wp_reset_postdata