it-swarm.com.de

WordPress ruft Metadaten für alle verfügbaren Beitragstypen in der Listenansicht ab

Ich habe ein Problem in WordPress, bei dem PHP im Sterben liegt. Ich habe den Speicher vergrößert, aber der PHP -Prozess springt auf 100% der CPU-Auslastung und stirbt, und Apache gibt einen 500-Fehler aus.

Ich habe versucht, Apache dazu zu bringen, etwas zu protokollieren, oder PHP/MySQL, um einen Fehler zu protokollieren, aber nichts anderes als ein allgemeiner 500-Fehler wird protokolliert.

Die 500-Ausgabe befindet sich auf der Listenseite, z.

/wp-admin/edit.php?post_type=artist

Wir haben derzeit über 1200 Künstlereinträge in WordPress, wenn ich eine Datums-Sortierung wie diese anhänge:

/wp-admin/edit.php?post_type=artist&orderby=date

Dann lädt die Liste fein, sogar schnell! Ich habe das MySQL-Abfrageprotokoll gesehen und es sieht so aus, als würde WordPress die Metadaten für jeden einzelnen Post (alle 1200) laden, um die Liste von ungefähr 10 zu erstellen. Bei nur einer der Abfragen werden 92000 Zeilen zurückgegeben. Ich verwende erweiterte benutzerdefinierte Felder und eine Vorlage mit einem eigenen Framework, sodass an jeden Beitrag ein beachtlicher Teil der Metadaten angehängt ist. Ich denke, dass dies zu viele Daten sind, als dass PHP sie verarbeiten könnte, und ich habe hier eine Obergrenze erreicht. Die 1200 Stellen dürften sich im nächsten Jahr leicht verdoppeln.

Wie kann ich das Laden der ersten Seite erzwingen, um die Datumssortierung anzuhängen, oder das Problem beim Laden aller dieser Metadaten beheben?

9
Paul Cullen

Versuchen Sie, hierarchisch: false in Ihrer CPT-Definition zu ändern (sofern Ihre Anwendung dies zulässt).

Wenn CPTs auf hierarchisch gesetzt sind: true, werden alle Posts im Admin-Dashboard abgefragt, was zu Speicherproblemen führen kann.

1
locomo

Das Problem war, dass das CPT auf hierarchisch eingestellt war und dies auf hierarchisch umstellte: false in der functions.php löste das Problem.

0
Paul Cullen