Wenn WP_DEBUG nicht gesetzt ist, so wie ich es verstehe, sollten Sie niemals Warnungen sehen. Aber auf einigen Sites auf einigen Servern sehe ich immer noch ein paar. Nicht alle Warnungen, die angezeigt würden, wenn WP_DEBUG gesetzt wäre, sondern nur einige wenige.
Ich habe versucht, die Fehlerstufe in der php.ini zu ändern, aber das scheint keinen Einfluss darauf zu haben, ob Warnungen angezeigt werden oder nicht, aber sie erscheinen in unterschiedlicher Menge auf verschiedenen Servern (dh keine Warnungen bei der Entwicklung, eine Warnung beim Staging und noch ein paar warnhinweise zur produktion).
Antworten:
WP_DEBUG hat keinen Einfluss auf die PHP-Fehlerausgabe. Setzen Sie in Ihrer php.ini-Datei zusätzlich zur Einstellung error_reporting den Wert display_errors = 0. Es ist standardmäßig für die Entwicklung aktiviert. Auf Produktionsservern sollte es jedoch deaktiviert sein.
quelle
Ersetzen
mit diesem:
quelle
Es ist auch möglich, dass diese Zeile bereits auf false gesetzt ist. In diesem Fall sehen Sie den folgenden Code:
In beiden Fällen müssen Sie diese Zeile durch den folgenden Code ersetzen:
Vergessen Sie nicht, Ihre Änderungen zu speichern und die Datei wp-config.php wieder auf den Server hochzuladen.
quelle
Versuchen Sie, alle Fehlerwarnungen / -hinweise in Ihrem
wp-config.php
(oberen) Bereich zu deaktivieren / zu unterdrücken . Wie auch immer: Fehler sind nichts Schlimmes. Sie geben Ihnen die Möglichkeit, Ihren Code zu reparieren.quelle
In WordPress-Umgebungen gibt es normalerweise keinen Grund zur Verwendung
ini_set
da die von WordPress Core bereitgestellten definierten Konstanten dies bereits erreichen. PHP funktioniert so, dass bestimmte Einstellungen in Ihrem CMS (WordPress), in einzelnen Skripten und sogar pro Benutzer oder pro Verzeichnis außer Kraft gesetzt werden können (sehr zur Frustration von Webhosts und Agenturen).Die einzige Einstellung, die Sie wirklich benötigen, um zu verhindern, dass Fehler auf einer Seite in WordPress angezeigt werden, ist:
...weil wenn
WP_DEBUG
deaktiviert, sind die Unteroptionen dann inaktiv:Beachten Sie, dass sich die verwirrende
WP_DEBUG_LOG
Option nur auf die Erstellung von beziehtdebug.log
innerhalb des Verzeichnisseswp-content
bezieht und sich nicht auf andere Protokolleinstellungen usw. auswirkt.Auch hier können die Einstellungen in WordPress die Standard-PHP-Einstellungen überschreiben, sodass Ihre PHP-Einstellungen weniger wichtig sind als die korrekten Einstellungen in Ihrem
wp-config.php
Datei, die vor anderen WP-Komponenten geladen wird.Trotzdem ist es eine gute Idee, die folgenden Standardeinstellungen in der Produktion zu implementieren:
Ein vollständiges Beispiel finden Sie in unserer für Nginx und PHP-FPM optimierten SlickStack-Datei php.ini .
In einem Fall stellten wir nach stundenlanger Recherche fest, dass ein Plugin (oder Thema) die verschiedenen Einstellungen für die Fehlerbehandlung überschrieb, die zuvor festgelegt wurden
php.ini
undwp-config.php
. Die einzige Möglichkeit, dies zu verhindern, besteht darin, das WordPress-Plugin oder -Thema zu entfernen, das versucht, Ihre PHP-Einstellungen zu "hacken", oder sie anzuweisen, es zu entfernen, da dies eine sehr schlechte Praxis ist, wenn Erweiterungen die Debug-Optionen Ihres CMS überschreiben.In SlickStack haben wir ein Bash - Skript , dass „Flags“ jede
ini_set
underror_reporting
Linien von PHP - Dateien in die/themes/
und/plugins/
Verzeichnisse , die von solchen Fällen Hervorhebung eines MU - Plugin (PHP - Skript) , dass zeigt eine Liste solcher „Hacks“ in der WP Admin Dashboard.quelle