2011-12-16 57 views
2

我正在尋找wordpress,我想搜索多個類別的文本。這裏是我的代碼根據多個類別搜索帖子WordPress

<form method="post" action="<?php bloginfo('home');?>/?ptype=catsearch" > 
    <input type="text" name="searchtext" size="40" /> 
     <h2><?php _e('Categories:'); ?></h2> 
     <select name="category[]" multiple='multiple'> 
      <option value=""><?php echo esc_attr(__('Please Select Your Choice')); ?></option> 
       <?php $categories= get_categories('show_count=0&orderby=name&echo=0&hierarchical=true&depth=1&taxonomy=category&exclude=1'); 
       foreach ($categories as $category) { 
       $option = "<option value=$category->term_id>"; 
       $option .= ucfirst($category->cat_name); 
       $option .= '</option>'; 
       echo $option; 
      } 
      ?> 
     </select> 
    <input type="submit" id="searchsubmit" value="Search" name="submit"/> 
</form> 

當這FOMS上catsearch.php文件的帖子我通吃categoryids在陣列和創建網址看看下面的代碼。如果選擇了多個類別,它會創建類似http://abcd.com/?cat=3&cat=7&cat=8&s=dasdasDS的網址。在這種情況下,它僅在最後一個貓ID中搜索文本。我認爲它勝過了catids。如果我在任何類別中找到我的搜索文本,則需要顯示所有帖子。

$categoryids = $_POST['category']; 

      echo 'count is ---' .count($categoryids); 

      if($categoryids) 
      { 
       foreach($categoryids as $categoryid) 
       { 
        $cat.= 'cat='.$categoryid.'&'; 
       } 
       echo $cat = trim($cat, '&'); 
       echo '<br />'; 
       $url .= '?'.$cat; 

      } 
if($_POST['searchtext']) 
      { 
       echo 'searchtext---'. $_POST['searchtext']; 
       echo '<br />'; 
       $url .= '&s='.$_POST['searchtext']; 
      } 
<META http-equiv="refresh" content="1;URL=<?php echo get_bloginfo('url')."$url"; ?>"> 

回答

2

當你做這樣的事情

cat=3&cat=7&cat=8 

您會不斷重新定義的$ _GET [ '貓']的值。所以它非常有意義,它最終會是最後一個 - 8

查詢多個類別在WordPress中語法使用逗號

cat=3,7,8 
+0

感謝您的答覆。發佈這些問題後,我得到了這種方式。 – 2011-12-19 06:18:31