Afficher le nombre de résultats de recherche


13

Jusqu'à présent, j'utilisais le code ci-dessous pour obtenir le nombre de résultats lorsque quelqu'un effectue une recherche et pour afficher ce nombre.

<?php /* Search Count */ $allsearch =& new WP_Query("s=$s&showposts=-1"); $count = $allsearch->post_count; echo $count . ' '; wp_reset_query(); ?>

Mais cela ne semble pas être du code valide. Il montre l'erreur ci-dessous:

Obsolète: l'attribution de la valeur de retour de new par référence est obsolète

Quelqu'un peut-il s'il vous plaît suggérer la bonne façon d'obtenir le nombre de recherches? Le code ci-dessus est placé dans l'en-tête de mon fichier index.php de thème dans une instruction conditionnelle pour afficher un en-tête différent en fonction du type de page sur lequel un utilisateur se trouve.


allsearch = new WP_Querysans '&' pour éviter un avis obsolète.
gmazzap

Réponses:


31

Si vous êtes dans le modèle de recherche, c'est-à-dire que la requête de recherche est votre requête principale. Vous devriez alors pouvoir obtenir des résultats de recherche à partir de global $wp_querysans exécuter de requête supplémentaire.

global $wp_query;
echo $wp_query->found_posts.' results found.';

Modifier 1

Si vous devez obtenir le décompte hors du contexte de recherche. Vous pouvez combiner les deux techniques pour obtenir un résultat efficace. Il ne récupérera pas tous les messages, mais vous pouvez obtenir le nombre de recherches.

$allsearch = new WP_Query("s=$s&showposts=0"); 
echo $allsearch ->found_posts.' results found.';

Votre erreur

À propos de l'erreur que vous obtenez, elle se trouve ici

$allsearch =& new WP_Query("s=$s&showposts=-1");

Supprimez le "&" à côté du signe égal pour supprimer l'erreur. Donc ça ressemblera à ça

$allsearch = new WP_Query("s=$s&showposts=-1");

1
Ouah merci. J'ai également essayé cela et cela a fonctionné '<? Php / * Search Count * / $ count = $ wp_query-> post_count; echo $ count. ''; wp_reset_query (); ?> '
Harish Chouhan

Harish votre $ allsearch = new WP_Query ("s = $ s & showposts = 0"); echo $ allsearch -> found_posts. ' résultats trouvés.'; affichera uniquement le nombre de pages actuel et non le total. Par exemple, il ne devrait être que de 10 s'il y a également 20 postes.
Suyash Jain
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.