Ich bin zutiefst verwirrt von diesem: Ich habe eine WordPress-Installation auf einem Media Temple GS [einer von vielen, die gut funktionieren und fast genau gleich konfiguriert sind], was mir gelegentlich 404s Sitewide gibt. In diesem Fall werden 3 Fehler in meinem PHP-Fehlerprotokoll angezeigt:
[01-Nov-2013 22:20:50 UTC] PHP Notice: Trying to get property of non-object in /nfs/---/---/mnt/---/domains/---.---/html/wp-includes/post-template.php on line 275
[01-Nov-2013 22:20:50 UTC] PHP Notice: Trying to get property of non-object in /nfs/---/---/mnt/---/domains/---.---/html/wp-includes/post-template.php on line 209
[01-Nov-2013 22:20:50 UTC] PHP Notice: Trying to get property of non-object in /nfs/---/---/mnt/---/domains/---.---/html/wp-includes/post-template.php on line 29
Die ersten beiden beziehen sich auf das $post
Objekt und die dritte darauf: get_post()->ID;
Was ich denke, ist die Schaffung des $post
Objekts.
Ich habe zwei dieser identischen Trios von Fehlermeldungen im Abstand von fast genau 25 Minuten [um 2s versetzt].
Ich habe MT-Unterstützung ausprobiert, aber sie denken, dass es ein WP-Fehler sein muss. Ich verwende die neueste Version von WP, habe dieses Problem jedoch bei früheren Versionen festgestellt.
Ich hatte 2 Plugins aktiviert: W3 Total Cache & AJAX Thumbnail Rebuild
Ich habe mit und ohne Cache-Plugin getestet und das Problem besteht weiterhin. Ich habe gerade den Miniaturbild-Stecker deaktiviert, um zu sehen, ob es einen Unterschied macht.
Bitte helfen Sie, das macht mich verrückt! [und ich wollte diese Seite heute öffentlich starten]
BEARBEITEN
Ich hätte auch erwähnen sollen, dass ich diesen Fehler bei einigen, aber nicht allen anderen WordPress-Installationen auf diesem Server gesehen habe. Ich denke, kann aber nicht 100% sicher sein, dass diejenigen, die Fehler anzeigen, neuere Installationen sind als diejenigen, die gut funktionieren. Alle Installationen sind jedoch vollständig aktualisiert.
EDIT2
Ich arbeite gerade an einem anderen WP-Projekt und habe zumindest erkannt, was diese 3 Fehler bedeuten. Ich kann genau diese drei PHP-Fehler reproduzieren, indem ich zur Indexseite eines benutzerdefinierten Beitragstyps gehe, der nicht existiert. Dies erklärt jedoch nicht, warum dies den 404 in dieser Frage verursachen würde, zumal dies nicht nur auf benutzerdefinierten Indexseiten vom Typ Post geschieht. Ich denke jedoch, dass dies in irgendeiner Weise mit benutzerdefinierten Beitragstypen zusammenhängen muss.
Antworten:
Es gibt zwei Arten von 404-Fehlern: WordPress-generiert und Server-generiert.
In einigen Serverumgebungen können 404s vom Server in Fällen von CPU-Überlastung oder aufgrund bestimmter Fälle von Fehlkonfiguration usw. ungenau angezeigt werden. Normalerweise sagen vom Server generierte 404-Fehler etwas wie "Nginx" oder "Apache" am unteren Rand des Seite (abhängig vom Servertyp).
In anderen Situationen können von WordPress (PHP) "falsch positive" 404-Fehler generiert werden, da Sicherheits-Plugins den Zugriff auf geladene Ressourcen blockieren:
Warum wird manchmal ein 404-Fehler angezeigt, wenn ich versuche, eine Seite mit Elementor zu aktualisieren?
https://wordpress.org/support/topic/getting-false-positive-404-errors-with-newest-update/
Deaktivieren Sie alle Sicherheits-Plugins, löschen Sie die Caches und aktualisieren Sie die Seite. Sicherheitsmodule wie ModSecurity, die auf Ihrem Server installiert sind, können möglicherweise ebenfalls die Ursache sein.
Dies kann auch durch ein schlecht codiertes Thema oder Plugin verursacht werden. Überprüfen Sie, ob auf allen beteiligten Websites ein gemeinsames Thema oder Plugin installiert ist. Und wenn dieses Problem nur beim Hosting von Media Temple auftritt, ist möglicherweise etwas falsch konfiguriert oder sogar Ihr Server ist zu stark ausgelastet ...
quelle
Sie haben nicht genügend Informationen, um Ihr Problem zu lösen. Versuchen Sie, Ihrem Fehlerprotokoll eine vollständige Stapelverfolgung hinzuzufügen und Informationen anzufordern, um ein Problem zu untersuchen.
Sie können Ihren eigenen benutzerdefinierten Fehlerhandler erstellen, um Stack-Trace hinzuzufügen und Informationen zu Ihrem Fehlerprotokoll anzufordern.
Sie können überprüfen, ob dies funktioniert, indem Sie trigger_error irgendwo in Ihrem Code hinzufügen, z
single.php
. B. in einer Datei.Ihr Fehlerprotokoll sollte ungefähr Folgendes ausgeben:
Mit dieser Art von Nachricht ist es viel einfacher herauszufinden, wo das Problem liegt.
quelle