2014-10-11 76 views
0

我很漂亮在WP新,所以請原諒我我的無知即時通訊嘗試學習。搜索post_like +搜索分類複選框在一個循環

所以我有兩個Wp_Query(通過在搜索欄中輸入和搜索分類複選框進行搜索),我不知道如何混合它們...如果一個作品第二不要和它的cricle。

<?php 

    global $search_ingr; 

    if(isset($search_ingr)) { 
     global $loop; 
    } else { 

    $query_params = getQueryParams(); 
     if(isset($query_params['search'])) { 
      $query_params['post_title_like'] = $query_params['search']; 
      unset($query_params['search']); 
     } 
    $loop = new WP_Query(array(
     'numberposts' => 60, 
     'posts_per_page' => 60, 
     'orderby' => 'title', 
     'order' => 'ASC', 
     'post_type' => 'products', 
     'post_status' => 'publish' 
     )); 
    } 
?> 


<?php if(isset($search)): ?> 
    <div class="search-matches"><h4>Wyniki wyszukiwania:</h4><hr></div> 
<?php endif; ?> 

<?php if ($loop->have_posts()) :?> 
<?php while($loop->have_posts()) : $loop->the_post(); ?> 

    <span class="tooltip tooltip-effect-4"> 
    <span class="tooltip-item"> 
     <div class="product"> 
      <a href="<?php the_permalink(); ?>"> 
       <div class="product-thumbnail"><span class="helper"></span><?php the_post_thumbnail(); ?></div> 
       <div class="product-name"><?php the_title(); ?></div> 
      </a> 
     </div> 
    </span> 
    <a href="<?php the_permalink(); ?>"> 
    <span class="tooltip-content clearfix"> 
     <?php the_post_thumbnail(); ?> 
     <span class="tooltip-text"><?php the_title(); ?></span> 
    </span> 
    </a> 
    </span> 

<?php endwhile; ?> 
<?php endif; ?> 

很長的和平代碼,我粘貼循環以及以上,我有搜索框和分類列表。

此外,當我刪除此:

// $loop = new WP_Query(array(
    // 'numberposts' => 60, 
    // 'posts_per_page' => 60, 
    // 'orderby' => 'title', 
    // 'order' => 'ASC', 
    // 'post_type' => 'products', 
    // 'post_status' => 'publish' 
    // )); 

兩個搜索的偉大工程(但我無法控制職務序列和職位的數量)。 對此有何幫助?

回答

0

修改wordpress循環的正確方法就是這樣。 試試這個PHP的頂部第一塊,而不是:

<?php 
    $search = get_query_var('s'); 
    $loop = new WP_Query(array(
     'numberposts' => 60, 
     'posts_per_page' => 60, 
     'orderby' => 'title', 
     'order' => 'ASC', 
     'post_type' => 'products', 
     'post_status' => 'publish', 
     's' => $search 
    )); 
?> 

潛在的問題是,你正在使用的功能和參數,是不是當地的WordPress的 - getQueryParams()不是一個WordPress的功能和WP_Query函數不接受名爲'post_title_like'的參數。如果這段代碼有效,那麼你可能會使用一些插件來實現搜索功能,在這種情況下,你將不得不重寫插件行爲,而不是默認的wordpress查詢。

0

非常感謝!真的很感謝你的幫助,但它沒有解決我的問題。 我會嘗試另一種方式 這片代碼工作完全兩個搜索,但我需要改變上述的10限制的職位數(這就是爲什麼我開始使用此代碼搞亂):

<?php 

    global $search_ingr; 

    if(isset($search_ingr)) { 
     global $loop; 
    } else { 

    $query_params = getQueryParams(); 
    if(isset($query_params['search'])) { 
     $query_params['post_title_like'] = $query_params['search']; 
     unset($query_params['search']); 
     } 

    $loop = new WP_Query($query_params); 

    } 

?> 

而且getQueryParams ()功能:

function getQueryParams(){ 
    global $query_string; 
    $parts = explode('&', $query_string); 

    $return = array(); 
    foreach($parts as $part){ 
     $tmp = explode('=', $part); 
     $return[$tmp[0]] = trim(urldecode($tmp[1])); 
    } 

    return $return; 
}