if ( ! defined( 'WP_DEBUG' ) ) {
}
macht erst einmal … nichts. Es prüft, ob die Konstante WP_DEBUG
gesetzt wurde, um dann exakt nichts auszuführen. Das war sicher mal anders geplant?
define( 'WP_ENVIRONMENT_TYPE', 'local' );
setzt einen Wert für die Konstante WP_ENVIRONMENT_TYPE
. Erlaubt sind die Werte local
, development
, staging
und production
, die jeweils angeben, in welcher Umgebung WordPress genutzt wird. Damit kann man zum Beispiel alle JavaScript-Dateien in ihren unkomprimierten Form ausführen, solange man an der Website arbeitet, aber die komprimierte Version für eine öffentlich zugängliche Website („in Produktion“) verwenden. Oder du schaltest (sehr sinnvoll!) währen der Entwicklung den Debug-Modus ein, in Produktion aber aus, um Angreifern einen möglichen Fehler nicht auch noch auf dem Silbertablett zu servieren:
define( 'WP_ENVIRONMENT_TYPE', 'development' );
$environment = wp_get_environment_type();
if( 'development' == $environment ) {
define( 'WP_DEBUG', true );
}
Sobald du dann die Website online stellst, änderst du in der ersten Zeile den Wert von development
auf production
, wodurch die Konstante WP_DEBUG
nicht mehr auf true
gesetzt wird.
Da Konstanten immer nur einmal definiert werden dürfen (sonst wären es ja Variablen), kannst du das ganze auch noch mit einem if-Statement versehen, das prüft, ob die Konstante ‚WP_DEBUG‘ bereits gesetzt wurde. Nur wenn nicht, wird der o.g. Code ausgeführt:
if ( ! defined( 'WP_DEBUG' ) ) {
define( 'WP_ENVIRONMENT_TYPE', 'development' );
$environment = wp_get_environment_type();
if( 'development' == $environment ) {
define( 'WP_DEBUG', true );
}
}
Hier änderst du ebenfalls den Wert development
auf production
, wenn die Website online geht und vermeidest so die Fehlermeldung. Fällt dir auf, dass sich ein Fehler eingeschlichen hat oder der Kunde wünscht ein weiteres Feature, kannst du die Website ruckzuck in deine Staging- oder Entwicklungsumgebung klonen, wobei dort dann der Wert weiterhin auf staging
oder development
steht.
So ergibt das alles etwas mehr Sinn. 🙂