web-dev-qa-db-fra.com

Résultats différents avec la requête ('s = ordinateur') vs get_posts ('s = ordinateur')?

J'ai deux morceaux de code différents et il renvoie deux résultats différents.

$search_query = new WP_Query();
$search_posts = $search_query->query('s=computer'); 
echo count($search_posts);

vs.

$search_posts = get_posts('s=computer');
echo count($search_posts);

Quelle est la raison des différentes valeurs?

(La valeur fournie par le premier est correcte. C'est le même nombre de publications que je reçois lorsque je fais une recherche régulière dans WP. Mais le premier morceau de code ne fonctionnera pas dans le fichier php du plugin, il ne fonctionnerait que dans un modèle.)

Merci.

2
Dan

Les arguments par défaut pour la fonction get_posts() incluent 'numberposts' => 5.

Ainsi, si vous recherchez un terme de recherche renvoyant plus de cinq (5) résultats, la seconde requête renverra une valeur maximale de 5 à moins que vous ne passiez 's=computer&numberposts=-1' en tant que chaîne de requête.

L'objet WP_Query n'a pas de valeur par défaut 'numberposts', bien qu'il soit affecté par le "Les pages de blog affichent au plus" count dans votre panneau de paramètres. Donc, si vous voulez que le nombre total utilise la fonction query(), vous devez remplacer les valeurs par défaut comme ceci:

$search_query->query('s=computer&nopaging=true')
11
goldenapples