WordPress : Qu’advient-il de la requête par défaut lorsque j’utilise WP_Query ?

Publié par Jean-Michel le

Je travaille sur un thème personnalisé basé sur Underscores. Dans mon archive.php, je veux styliser le premier message de la boucle différemment des autres, donc j’en exécute un WP_Querypour récupérer le premier message et un autre pour obtenir les messages restants.

Ce que je me demande, c’est – puisque je gère moi-même les requêtes, qu’advient-il de la requête par défaut que WordPress exécute implicitement (c’est-à-dire celle avec laquelle je serais normalement en train d’itérer while ( havePosts() )? Évidemment, pour des raisons de performances, je ne Je ne veux pas exécuter de requêtes inutiles, alors existe-t-il un moyen de l’arrêter ?

Je connais un peu le pre_get_postscrochet, mais je ne sais pas comment je l’utiliserais car, comme je l’ai mentionné, je n’essaie pas seulement de modifier la requête par défaut — j’en ai besoin de deux (à moins qu’il n’y ait une meilleure façon de Ce faisant).

Solution n°1 trouvée

WordPress interroge toujours un ensemble de messages par défaut lorsque vous affichez n’importe quel type d’archive. Donc, si vous exécutez votre propre requête comme décrit, vous vous retrouverez avec 3 requêtes de base de données au lieu de 1.

Vous ne devez pas développer votre modèle comme vous le décrivez. Les modèles WordPress standard doivent tous utiliser la requête par défaut. Vous reviendrez en tant que 400e personne à demander pourquoi la pagination ne fonctionne pas correctement si vous le faites de cette façon, entre autres problèmes potentiels. Si vous souhaitez styliser le premier message différemment, il existe de nombreuses façons de le faire sans l’interroger séparément, des techniques CSS à la logique du modèle. Si vous avez quelque chose de spécifique que vous essayez d’accomplir, je vous suggère de poster une nouvelle question avec ces détails.

Catégories : Wordpress

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *