我一直在创建一个自定义帖子类型,它有三个分类。我想创建一个包含关键字(按用户类型)和三个分类下拉列表框的搜索表单。
只有三个列表框搜索给我正确的搜索结果。我添加用户类型文本框时购买。现在有结果。
下面的代码不起作用。
$list = array();
$item = array();
foreach($_GET as $key => $value){
if($key == 's'){
$item['s'] = htmlspecialchars($key);
$item['keyword'] = htmlspecialchars($value);
$list[] = $item;
}
if($value != '' && $key != 's'){
$item['taxonomy'] = htmlspecialchars($key);
$item['terms'] = htmlspecialchars($value);
$item['field'] = 'slug';
$list[] = $item;
}
}
$cleanArray = array_merge(array('relation' => 'AND'), $list);
$args['post_type'] = 'listings';
$args['showposts'] = 12;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args['paged'] = $paged;
$args['tax_query'] = $cleanArray;
$the_query = new WP_Query( $args ); //data is sanitized inside wp_query class
答案 0 :(得分:0)
我通过更改下面的代码得到了答案。
global $query_string;
$query_args = explode("&", $query_string);
$search_query = array();
foreach($query_args as $key => $string) {
$query_split = explode("=", $string);
$search_query[$query_split[0]] = $query_split[1];
} // foreach
$args = array(
'post_type' => 'listings',
's' => $search_query['s'],
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'type',
'field' => 'slug',
'terms' => $search_query['type']
),
array(
'taxonomy' => 'rooms',
'field' => 'slug',
'terms' => $search_query['rooms']
)
)
);
$the_query = new WP_Query($args);