2017-08-09 3 views
1

Je travaille avec la fonction de recherche dans le thème WordPress et arrive un problème est: J'ai un type de poste personnalisé et la taxonomie personnalisée en fonction. Je ne connais pas cet effet à rechercher dans WordPress ou non? Entrée sous forme WordPress avec name ="s"Recherche ne fonctionne pas dans WordPress

Ma requête de recherche:

$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); 

Recherche est fonctionnement normal si je retire $posts = new WP_Query($args); et en boucle pas utiliser $posts. Et mon naigation est:

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

Cela aurait dû être publié sur wordpress se –

+0

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

Répondre

0

Après l'exécution de votre requête personnalisée vous devez restaurer les données de message original:

wp_reset_postdata(); 

Vous n'êtes pas vous énoncez faites cela et il semble que cela vous cause problèmes en décochant $ variable post.

Check it out dans le codex

+0

Merci pour votre aide, mais ça ne fonctionne pas. après ne pas filtrer, le message de la liste est plein. –

+0

Semble à ma requête incorrecte. Parce que quand je supprime le code ci-dessus, alors ça marche. –

+0

Est-ce que vous réinitialisez les résultats de la boucle principale après votre requête? –

0

@Mr DI crois que vous devez inclure une requête d'impôt dans vos args comme ceci:

$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); 

et vous devez également déclarer la taxonomie sur votre message personnalisé enregistrement de type

0

Merci pour votre aide. Ce problème a été résolu. J'essaie de changer ma requête en:

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

C'est génial! Merci encore!