2010-01-22 123 views
0

我試圖設置一個搜索結果頁面有兩列。第一列將顯示除一個(Galleries)以外的所有類別的結果,第二列將僅顯示Galleries類別。用Wordpress過濾搜索結果

query_posts()只是重置我的結果。這是我到目前爲止。破:

 <?php 
      $s = get_query_var('s'); 
      query_posts('s=' . $s . '&cat=164'); 
     ?> 

     <?php 
      // First Loop 
     ?> 
     <div class="contentLeft"> 
      <ul class="postListSmall related"> 
       <?php while (have_posts()) : the_post(); ?> 
        [do stuff] 
       <?php endwhile; ?> 

     <?php 
      // Second Loop 
     ?> 
      <?php query_posts('cat=-164'); ?> 
      <?php rewind_posts(); ?> 
       <?php while (have_posts()) : the_post(); ?> 
        [do stuff] 
       <?php endwhile; ?> 

    <?php else : ?> 
       [do stuff] 
    <?php endif; ?> 

怎麼辦?

+1

http://wordpress.org/extend/plugins/search-everything/檢查出來。 http://yoast.com/wordpress-search/也是這個。 – David 2010-01-22 15:17:34

+0

這不是我想到的,但謝謝。我需要排除,重置和查詢。這對於插件來說太具體了,可以用query_posts來實現。我只是不明白爲什麼這不起作用。 – 2010-01-22 15:20:57

回答

0

我知道這是一個老的文章,但我有一個類似的問題,我想我也有同感:

  1. 您正在創建一個查詢,然後調用第二個查詢,但隨後試圖倒帶查詢。這不是倒帶功能的工作原理。看看Rewind Documentation。你還會說:

query_posts()只是重置我的結果。

那麼爲什麼你要在新的查詢後立即調用回滾函數?此外,如果您重置結果,那麼爲什麼它完全是一個不同的查詢?這:

 $s = get_query_var('s'); 
     query_posts('s=' . $s . '&cat=164'); 

是不一樣的:

 <?php query_posts('cat=-164'); ?> 
     <?php rewind_posts(); ?> 

要獲得不同類別的2個結果我做了以下內容:只使用一個循環,不使用回退功能,在使用get_the_category if語句在循環,例如:

<?php 
$s = get_query_var('s'); 
query_posts('s=' . $s . '&cat=164'); 

while (have_posts()) : the_post(); 
    foreach(get_the_category() as $category){ 
     if($category->name == "category name"){ 
      //Concatenate to the left div 
     } else { 
      //concatenate to the right div 
     } ?> 

希望這有助於。