it-swarm.com.de

Der schnellste Weg, um alle Posts durchzugehen?

Ich muss einen Hintergrundprozess in einem Plugin ausführen, der ALLE Beiträge in der Datenbank einer Person bearbeitet, sobald das Plugin installiert ist. Ich bin sehr neu in der Arbeit mit WordPress und meine Recherchen haben gezeigt, dass ich die WP-Abfrage oder die "Schleife" verwenden kann.

Da ich absolut jede einzelne Post-Geschwindigkeit durchgehe, ist es von entscheidender Bedeutung. Ich muss den Titel, den Text, die Kategorien, die Meta-Tags, den Veröffentlichungsstatus und das Passwort überprüfen. Welches davon wäre also das schnellste?

2
Thirlan

"The Loop" ist nur ein Name für die while (have_posts()): the_post();-Schleife, mit der ein Array von Beiträgen durchlaufen wird, die von WP_Query() zurückgegeben wurden. Die andere Funktion, die zum Abfragen von Posts verwendet wird, ist die Funktion get_posts (), die ein einfaches (nicht erweitertes) Array zurückgibt, das Sie mit einer foreach-Schleife durchlaufen können.

Ich denke nicht, dass es sehr wichtig ist. Wenn Sie jedoch keine Auswahl treffen, ist die Methode get_posts() etwas schneller und speicherintensiver, da sie nicht bei jedem Post, den sie durchläuft, setup_postdata() aufruft (wodurch die Vorlagen-Tags usw. gefüllt werden).

In jedem Fall wird Ihnen bei einigen Setups mit Tausenden von Posts wahrscheinlich der Arbeitsspeicher ausgehen. Stellen Sie in diesem Fall sicher, dass Sie Fallbacks einbauen.

4
goldenapples

"Die Schleife" ist nur ein Name, der auf eine foreach-Schleife angewendet wird, die auf ein WP_Query-Objekt angewendet wird. Sie brauchen also beides. In der Regel enthält die Schleife auch the_post (), sodass Sie Vorlagen-Tags verwenden können.

Es gibt jedoch eine andere Option, die möglicherweise schneller ist. Je nachdem, was Sie tun müssen, können Sie eine direkte Datenbankabfrage durchführen , um nur die Felder abzurufen, die Sie bearbeiten möchten. Da Sie aber auch Kategorien und Meta-Tags benötigen, wäre dies ein komplizierter Join. Für einfachere Updates und Abwärtskompatibilität können Sie auch die reguläre WP_Query verwenden.

0
Taylor Dewey