Biz değiştirebilir bool çıktısını wp_is_fatal_error_handler_enabled()
iki şekilde fonksiyonu:
Sabit
WP_DISABLE_FATAL_ERROR_HANDLER
Sabit değeri dosya true
içinde olarak ayarlayın wp-config.php
:
/**
* Disable the fatal error handler.
*/
const WP_DISABLE_FATAL_ERROR_HANDLER = true;
veya
define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true );
filtre
wp_fatal_error_handler_enabled
Bool filtresi kullanın :
/**
* Disable the fatal error handler.
*/
add_filter( 'wp_fatal_error_handler_enabled', '__return_false' );
notlar
Bilete bakın # 44458
wp_fatal_error_handler_enabled
Filtre değerini geçersiz kılar WP_DISABLE_FATAL_ERROR_HANDLER
sabit.
Ayrıca, sürekli devre dışı bırakma, ancak filtre etkinleştirme ile olası bir bool karışıklığına dikkat edin .
Testlerimde, filtre yaklaşımı, mutlaka kullanılması gereken bir eklenti olarak, beklendiği gibi çalışmıyor, bu yüzden bunun yerine sabiti kullanıyorum. Umarım bu konuya daha yakından bakabilirim.
Bir de özel ekleyebilir açılır kutusunu dosyaya fatal-error-handler.php
içine wp-content
dizine ( src geçersiz kılmak için,) WP_Fatal_Error_Handler
gerektiği gibi sınıf. Farklı bir sınıf adı kullanmalıyız ve handle()
yöntemi kayıtlı kapatma işlevi olarak tanımlamalıdır .
Devre dışı bırakmanın basit bir örneği, varsayılan hata işleyici sınıfını, hiçbir şey yapmayan özel bir sınıfla geçersiz kılmaktır:
<?php
class WPSE_Fatal_Error_Handler {
public function handle() {}
}
return new WPSE_Fatal_Error_Handler;
PHP 7+ 'da anonim sınıfın da işe yaradığı görülüyor:
<?php
return new Class(){
public function handle() {}
};
WP_Fatal_Error_Handler
Gerekirse varsayılan sınıfı da genişletebilir .
Sonra WP_SANDBOX_SCRAPING
sabit var. Bkz. # 46045
Ayar WP_DEBUG
gerçek olarak edecektir değil WSOD korumasını devre dışı. Bu tasarım gereğidir. Bkz # 46825