2017-08-09 82 views
1

我在WordPress主題中使用搜索功能併發生問題是: 我在函數中有自定義的帖子類型和自定義分類。我不知道這種影響在WordPress中搜索或不?輸入形式的WordPress與name ="s"搜索不能在WordPress中工作

我的查詢搜索:

$paged = (get_query_var('page')) ? get_query_var('page') : 1; 
    $args = array(
     'post_type' => 'post', 
     'posts_per_page' => 5, 
     'paged' => $paged); 
     $posts = new WP_Query($args); 

搜索是正常工作,如果我刪除$posts = new WP_Query($args);在環路中使用$posts。 而我naigation是:

paginate_links(array(
    'format' => '?page=%#%', 
    'current' => max(1, get_query_var('page')), 
    'total' => $posts->max_num_pages, 
    'prev_text' => __('Previous', 'extc'), 
    'next_text' => __('Next', 'extc') 
)); 
+0

這應該已經發布到wordpress se –

+0

https://codex.wordpress.org/Template_Tags/get_search_query – l2aelba

回答

0

執行自定義查詢後,您需要恢復原來的職位數據:

wp_reset_postdata(); 

你是不是說明你正在做這個,它看起來像這是造成你通過搞亂$ post變量來解決問題。

檢查出來的codex

+0

感謝您的幫助,但它不起作用。帖子不過濾,列表帖子已滿。 –

+0

看來我的查詢不正確。因爲當我刪除上面的代碼,那麼它的工作。 –

+0

您是否在查詢後重置主循環結果? –

0

@Mr DI認爲你必須包括像這樣在你的ARGS個稅查詢:

$paged = (get_query_var('page')) ? get_query_var('page') : 1; 
$args = array(
    'post_type' => 'your_custom_post_type', 
    'posts_per_page' => 5, 
    'paged' => $paged, 
    'tax_query' => array(
     array (
      'taxonomy' => 'your_custom_taxonomy', 
      'field' => 'slug', 
      'terms' => 'your_custom_taxonomy_term', 
     ) 
    ) 
); 
$posts = new WP_Query($args); 

,你也要申報您的自定義後的分類類型註冊

0

感謝兄弟幫我。這個問題解決了。我嘗試將我的查詢改爲:

$posts = new WP_Query(); 
$posts = $posts->query('post_type=post&s='.get_search_query().'&posts_per_page=5&paged='.$paged); 

這太棒了!再次感謝!