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


9

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% CPU-Auslastung, stirbt dann ab und Apache gibt einen 500-Fehler aus.

Ich habe versucht, Apache dazu zu bringen, etwas zu protokollieren, oder PHP / MySQL, einen Fehler zu protokollieren, aber es wird nichts anderes als ein allgemeiner 500-Fehler 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 Datumssorte wie diese anhänge:

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

Dann wird die Liste gut geladen, sogar schnell! Ich habe das MySQL-Abfrageprotokoll gesehen und es scheint, dass WordPress die Metadaten für jeden einzelnen Beitrag (alle 1200) lädt, um die Liste von 10 oder so 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 jedem Beitrag ein angemessener Teil der Metadaten beigefügt ist. Ich denke, dass dies zu viele Daten sind, als dass PHP sie verarbeiten könnte, und ich stoße hier an eine Obergrenze. Die 1200 Stellen dürften sich im nächsten Jahr leicht verdoppeln.

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


Haben Sie versucht, ACF und andere Plugins zu deaktivieren? Ich glaube, ich hatte einmal ein ähnliches Problem und ich denke, dass der Schuldige hier nicht WP selbst ist, sondern ACF. zB fügt ACF Metadaten zu Revisionen hinzu und lädt dann auch all das. Bitte stellen Sie sicher, woher dieses Problem stammt, da es anderen Menschen hilft, die Ihnen helfen.
Kraftner

Hey @kraftner ive hat ACF deaktiviert und es hat keinen Unterschied gemacht.
Paul Cullen

Wie viel Speicher verwenden Sie in wp-config (WP_MAX_MEMORY_LIMIT)? Was ist Ihr PHP.INI-Wert für memory_limit? Versuchen Sie, sie auf das Maximum anzuheben. Außerdem würde ich mir Ihre MySQL-Konfigurationsdatei ansehen.
Emanuel Rocha Costa

Ich habe PHP und WP_MAX_MEMORY_LIMIT vorübergehend ohne Wirkung auf 512 erhöht. Meine MySQL-Konfigurationsdatei ist: default-storage-engine=MyISAM innodb_file_per_table=1 max_allowed_packet=268435456 open_files_limit=10000 query_cache_size=64M log_slow_queries = 1 log-slow-queries=/var/log/mysql.slow.log log-error=/var/log/mysqld.log general_log_file = /var/log/mysql_general.log
Paul Cullen

1
Ist der benutzerdefinierte Beitragstyp "Künstler" hierarchisch (wie Seiten)? .. wenn ja, könnte dies der Schuldige sein, da alle Beiträge im Admin-Dashboard abgefragt werden. Wenn Ihre Anwendung dies zulässt, können Sie versuchen, die Hierarchie für das CPT "Künstler" in "Falsch" zu ändern, um
festzustellen,

Antworten:


1

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

Wenn CPTs auf hierarchisch: true eingestellt sind, werden alle Beiträge im Admin-Dashboard abgefragt, was zu Speicherproblemen führen kann.


0

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


1
Bitte akzeptieren Sie Ihre eigene Antwort, damit diese Frage geschlossen werden kann.
cjbj
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.