2013-01-16 41 views
3

我已經創建了一個自定義的帖子類型,它有三個分類。我想用關鍵字(按用戶類型)和三個分類下拉列表框創建一個搜索表單。我們如何在wordpress中搜索分類和關鍵字搜索?

只有三個列表框搜索給我正確的搜索結果。當我添加用戶類型文本框時購買。現在有結果。

下面的代碼是行不通的。

$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

我添加了一部分代碼。只需添加所有代碼即可。謝謝! – wailynnoo

回答

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); 
+0

如果此代碼有效,您應該接受您的答案,將其標記爲已解決。 –