Możemy zmodyfikować wyjście funkcji bool na wp_is_fatal_error_handler_enabled()
dwa sposoby:
Stały
Ustaw WP_DISABLE_FATAL_ERROR_HANDLER
stałą true
w wp-config.php
pliku:
/**
* Disable the fatal error handler.
*/
const WP_DISABLE_FATAL_ERROR_HANDLER = true;
lub
define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true );
Filtr
Użyj wp_fatal_error_handler_enabled
filtra bool:
/**
* Disable the fatal error handler.
*/
add_filter( 'wp_fatal_error_handler_enabled', '__return_false' );
Notatki
Zobacz bilet # 44458
wp_fatal_error_handler_enabled
Filtr zastąpi wartość WP_DISABLE_FATAL_ERROR_HANDLER
stałą.
Uważaj również na możliwe pomyłki bool ze stałym wyłączaniem, ale włączaniem filtra .
W moich testach podejście filtrujące, jako wtyczka, której należy użyć , nie działa zgodnie z oczekiwaniami, więc zamiast tego używam stałej. Mam nadzieję, że mogę przyjrzeć się temu dalej.
Można również dodać niestandardowy plik drop-infatal-error-handler.php
do wp-content
katalogu ( src ), aby w WP_Fatal_Error_Handler
razie potrzeby zastąpić klasę. Musimy użyć innej nazwy klasy i musi ona zdefiniować handle()
metodę jako zarejestrowaną funkcję zamykania .
Prostym przykładem wyłączenia byłoby zastąpienie domyślnej klasy procedury obsługi błędów niestandardową klasą, która nic nie robi:
<?php
class WPSE_Fatal_Error_Handler {
public function handle() {}
}
return new WPSE_Fatal_Error_Handler;
Wydaje się, że działa także anonimowa klasa w PHP 7+:
<?php
return new Class(){
public function handle() {}
};
W WP_Fatal_Error_Handler
razie potrzeby może również rozszerzyć domyślną klasę.
Potem jest WP_SANDBOX_SCRAPING
stała. Zobacz # 46045
Ustawienie wartości WP_DEBUG
true nie spowoduje wyłączenia ochrony WSOD. To jest z założenia. Zobacz # 46825