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.

Harish Chouhan
la source
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");
MONSIEUR
la source
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