Benutzerdefinierte Taxonomien machen WP sehr langsam – Möglichkeit zu beheben?

Ich habe drei benutzerdefinierte Taxonomien innerhalb meines Designs für Anhängepost-Typen in WordPress 3.5.1 eingerichtet. Eine Taxonomie ist nicht-hierarchisch (dh Tags) und enthält ungefähr 800 Begriffe. (Ich benutze WP, um eine schnelle & schmutzige Foto-Website zu erstellen, und diese Taxonomie-Begriffe sind mit Foto-Keywords verwandt. Ja, man könnte darüber diskutieren, ob WP das richtige Werkzeug dafür ist …). Eine andere Taxonomie ist eben und hat noch keine Begriffe.

Kurz gesagt, meine Website ist extrem langsam geworden. Ich bin im Allgemeinen nicht sehr versiert in MySQL oder databaseen, aber wenn ich das Blackbox-Plugin verwende, um Einblick in die zugrunde liegenden Abfragen beim Laden von Seiten zu bekommen, sehe ich, dass zwei Abfragen meinen Seiten einen enormen Overhead hinzufügen. Die Anzahl der Seitenanforderungen dauert einige Sekunden , und dies geschah nicht vor der Erstellung der Taxonomien. Eine Abfrage alleine (unten) dauert durchschnittlich 1,4 Sekunden.

Was ist los, und gibt es eine Möglichkeit, dies zu stoppen? Gibt es einen Grund, warum WP diese teuren Taxonomieabfragen auf jeder einzelnen Seite durchführen muss?

Momentan sieht eine Abfrage, die WP ausführt, so aus:

SELECT t.*, tt.*, tr.object_id FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('myCustomTaxonomyName') AND tr.object_id IN ( list of 200+ post IDs ) ORDER BY t.name ASC; 

Und der andere sieht ähnlich aus, außer mit verschiedenen Taxonomennamen:

 SELECT t.*, tt.*, tr.object_id FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('attachment_tax1', 'attachment_tax2') AND tr.object_id IN ( list of 200+ post IDs ) ORDER BY t.name ASC; 

Solutions Collecting From Web of "Benutzerdefinierte Taxonomien machen WP sehr langsam – Möglichkeit zu beheben?"

Dies hat nichts mit benutzerdefinierten Taxonomien zu tun. Ich habe ein Code-Snippet aus dem Standard-Twenty-Twelve-Theme für image.php verwendet, das jeden einzelnen Post im Blog durchlaufen hat, um Child-Attachments und damit die Taxonomie-Assoziationen für jeden dieser Posts zu erhalten. Das Ändern meiner image.php durch Entfernen dieser foreach () – Schleife hat das Problem behoben.

Meine Erfahrungen mit langsamen WordPress-Websites sind aufgrund von Änderungen mit dem PHP-Speicherplatz verbunden. Dies ist oft eine einfache Lösung in der Datei wp-config.php. Fügen Sie die folgende Zeile am Ende hinzu und Sie sollten eine Änderung sehen.

  define('WP_MEMORY_LIMIT', '64M');