web-dev-qa-db-fra.com

Le moyen le plus rapide de parcourir tous les messages?

J'ai besoin d'exécuter un processus d'arrière-plan dans un plugin qui effectue un travail sur TOUTES les publications de la base de données d'une personne une fois le plugin installé. Je suis très novice dans l'utilisation de wordpress, mes recherches ont donc montré que je pouvais utiliser la requête wp ou "la boucle".

Depuis que je traverse absolument chaque vitesse de poste est de l'essence. Je dois vérifier le titre, le corps, les catégories, les balises méta, l'état de publication et le mot de passe protégé. Donc, sur cette base, lequel d’entre eux serait le plus rapide?

2
Thirlan

"La boucle" est simplement un nom donné à la boucle while (have_posts()): the_post(); utilisée pour parcourir un tableau de publications renvoyées par WP_Query(). L'autre fonction utilisée pour interroger les publications est la fonction get_posts (), qui renvoie un tableau simple (non étendu) que vous pouvez parcourir avec une boucle foreach.

Je ne pense pas que cela compte beaucoup; Cependant, si vous êtes nerveux, la méthode get_posts() est légèrement plus rapide et nécessite moins de mémoire, car elle n'appelle pas setup_postdata() (qui remplit les balises de modèle, etc.) à chaque publication qu'elle parcourt.

Quoi qu'il en soit, vous allez probablement manquer de mémoire dans certaines configurations comportant des milliers de publications ... Assurez-vous de prévoir des solutions de rechange dans ce cas.

4
goldenapples

"La boucle" est simplement un nom appliqué à une boucle foreach appliquée à un objet WP_Query. Donc vous avez besoin des deux. En règle générale, la boucle inclut également the_post () afin que vous puissiez utiliser les balises de modèle.

Il y a une autre option cependant, qui peut être plus rapide. Selon ce que vous devez faire, vous pouvez effectuer une requête directe dans la base de données pour extraire uniquement les champs que vous souhaitez modifier. Mais comme vous avez également besoin de catégories et de balises méta, ce serait une jointure compliquée. Pour des mises à jour plus faciles et une compatibilité ascendante, vous pouvez également utiliser le WP_Query standard.

0
Taylor Dewey