Affichage du nombre de résultats de la recherche

11

Jusqu'à présent, j'utilisais le code ci-dessous pour obtenir le nombre de résultats obtenus lorsque quelqu'un effectuait 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 un code valide. Il montre l'erreur ci-dessous:

Obsolète: l'attribution de la valeur de retour de new by reference 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 afin d'afficher un en-tête différent en fonction du type de page d'un utilisateur.

    
posée Harish Chouhan 03.08.2013 - 17:52

1 réponse

23

Si vous vous trouvez dans le modèle de recherche, la requête de recherche est votre requête principale. Vous devriez alors pouvoir obtenir les résultats de la recherche globale $wp_query sans exécuter de requête supplémentaire.

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

Modifier 1

Si vous devez compter hors du contexte de recherche. Vous pouvez combiner les deux techniques pour obtenir un résultat efficace. Il ne récupère pas tout le message 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 se débarrasser de l'erreur. Donc, ça va ressembler à ceci

$allsearch = new WP_Query("s=$s&showposts=-1");
    
réponse donnée M-R 03.08.2013 - 17:59

Lire d'autres questions sur les étiquettes