Wir können die Bool- Ausgabe der wp_is_fatal_error_handler_enabled()
Funktion auf zwei Arten ändern :
Konstante
Setzen Sie die WP_DISABLE_FATAL_ERROR_HANDLER
Konstante auf true
innerhalb der wp-config.php
Datei:
/**
* Disable the fatal error handler.
*/
const WP_DISABLE_FATAL_ERROR_HANDLER = true;
oder
define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true );
Filter
Verwenden Sie den wp_fatal_error_handler_enabled
Bool-Filter:
/**
* Disable the fatal error handler.
*/
add_filter( 'wp_fatal_error_handler_enabled', '__return_false' );
Anmerkungen
Siehe Ticket Nr. 44458
Der wp_fatal_error_handler_enabled
Filter überschreibt den Wert der WP_DISABLE_FATAL_ERROR_HANDLER
Konstante.
Achten Sie auch auf eine mögliche Verwechslung mit der ständigen Deaktivierung, aber der Filteraktivierung .
In meinen Tests funktioniert der Filteransatz als Plugin, das unbedingt verwendet werden muss , nicht wie erwartet, daher verwende ich stattdessen die Konstante. Hoffentlich kann ich das weiter untersuchen.
Sie können dem Verzeichnis ( src ) auch eine benutzerdefinierte Drop-In- Datei hinzufügen , um die Klasse nach Bedarf zu überschreiben . Wir müssen einen anderen Klassennamen verwenden und die Methode als registrierte Abschaltfunktion definieren .fatal-error-handler.php
wp-content
WP_Fatal_Error_Handler
handle()
Ein einfaches Beispiel zum Deaktivieren wäre das Überschreiben der Standardfehlerbehandlungsklasse mit einer benutzerdefinierten Klasse, die nichts bewirkt:
<?php
class WPSE_Fatal_Error_Handler {
public function handle() {}
}
return new WPSE_Fatal_Error_Handler;
Die anonyme Klasse in PHP 7+ scheint ebenfalls zu funktionieren:
<?php
return new Class(){
public function handle() {}
};
WP_Fatal_Error_Handler
Bei Bedarf kann auch die Standardklasse erweitert werden.
Dann ist da noch die WP_SANDBOX_SCRAPING
Konstante. Siehe # 46045
Wenn Sie den Wert auf WP_DEBUG
true setzen, wird der WSOD-Schutz nicht deaktiviert. Dies ist beabsichtigt. Siehe # 46825