web-dev-qa-db-fra.com

Afficher le résultat de la recherche

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 l'afficher.

<?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 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 afin d'afficher un en-tête différent en fonction du type de page d'un utilisateur.

13
Harish Chouhan

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 à partir de $wp_query global 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 va pas chercher tout le post, mais vous pouvez obtenir le nombre de recherche.

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

Votre erreur

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

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

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

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