web-dev-qa-db-fra.com

Aide à la structuration de la requête pour les pages d'archives

Je construis un site avec plusieurs types d'articles (articles de blog, produits, articles d'information, etc.). Sur les pages de type archive (résultats de recherche, pages de balises, etc.), je souhaite afficher le contenu des différents types de publication dans des sections visuellement distinctes. Ensuite, l'utilisateur peut sélectionner la page spécifique souhaitée ou cliquer sur un lien pour afficher tous les résultats d'un type de message spécifique.

Comment dois-je structurer ma boucle? Devrais-je utiliser plusieurs objets WP_Query (un pour chaque type de publication) ou tout récupérer avec une requête et la séparer ensuite avec PHP? Je peux penser à deux manières de faire fonctionner cela, mais je ne suis pas sûr de la meilleure pratique pour la performance et la vérification future de mon code. Merci.

Mise à jour:
J'ai fini par suivre les conseils d'Alex Lane et faire de nombreuses requêtes. Je contourne la requête principale pour ces pages d'archive (vous n'en avez pas besoin) en utilisant la technique décrite dans la liste de wp-hackers , puis Je suis en train de parcourir tous les types d'articles pertinents et de créer un nouveau WP_Query pour chacun d'entre eux. Le travail est fait, mais cela me semble assez discret et inélégant.

Mise à jour 2:
En réfléchissant davantage à cette question, je me demande s’il serait peut-être plus rapide de simplement récupérer tous les messages, puis de les séparer en catégories de type avec PHP. Cependant, je ne suis pas un expert en performances de base de données, donc je ne sais pas. J'imagine devoir exécuter une requête de recherche quelque peu compliquée 5 à 6 fois (plusieurs d'entre elles ne donneront probablement aucun résultat) avant le chargement de la page. Cela me semble vraiment lent. D'autre part, l'extraction d'un ensemble de données volumineux de la base de données après une seule requête peut être encore plus lente. Je suppose que le seul moyen de savoir avec certitude serait de le comparer, mais je ne suis qu'une personne et je ne peux pas vraiment me permettre de construire et de tester les deux systèmes. Y a-t-il des experts en performance MySQL qui ont des idées à ce sujet?

2
Dominic P

Je voudrais faire plusieurs requêtes. Je sais que cela ralentit généralement les choses, mais parfois, si vous recherchez une page avec une tonne de contenu, il faut s'y attendre.

0
Alex Lane