Chúng ta có thể sửa đổi đầu ra bool của wp_is_fatal_error_handler_enabled()hàm theo hai cách:
Không thay đổi
Đặt WP_DISABLE_FATAL_ERROR_HANDLERhằng số truetrong wp-config.phptệp:
/**
* Disable the fatal error handler.
*/
const WP_DISABLE_FATAL_ERROR_HANDLER = true;
hoặc là
define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true );
Bộ lọc
Sử dụng wp_fatal_error_handler_enabledbộ lọc bool:
/**
* Disable the fatal error handler.
*/
add_filter( 'wp_fatal_error_handler_enabled', '__return_false' );
Ghi chú
Xem vé # 44458
Bộ wp_fatal_error_handler_enabledlọc sẽ ghi đè giá trị của WP_DISABLE_FATAL_ERROR_HANDLERhằng.
Ngoài ra, xem ra một sự nhầm lẫn bool có thể với việc vô hiệu hóa liên tục nhưng cho phép bộ lọc .
Trong thử nghiệm của tôi, cách tiếp cận bộ lọc, như một plugin phải sử dụng , không hoạt động như mong đợi, vì vậy tôi đang sử dụng hằng số thay thế. Hy vọng tôi có thể nhìn vào điều này hơn nữa.
Người ta cũng có thể thêm một tệp thả vào tùy chỉnh fatal-error-handler.phpvào wp-contentthư mục ( src ), để ghi đè WP_Fatal_Error_Handlerlớp khi cần. Chúng ta phải sử dụng một tên lớp khác và nó phải định nghĩa handle()phương thức là hàm tắt máy đã đăng ký .
Một ví dụ đơn giản để vô hiệu hóa nó sẽ là ghi đè lớp trình xử lý lỗi mặc định bằng một lớp tùy chỉnh không có gì:
<?php
class WPSE_Fatal_Error_Handler {
public function handle() {}
}
return new WPSE_Fatal_Error_Handler;
Lớp ẩn danh trong PHP 7+ dường như cũng hoạt động:
<?php
return new Class(){
public function handle() {}
};
Nó cũng có thể mở rộng WP_Fatal_Error_Handlerlớp mặc định nếu cần.
Sau đó, có WP_SANDBOX_SCRAPINGhằng số. Xem # 46045
Đặt WP_DEBUGđúng là sẽ không vô hiệu hóa bảo vệ WSOD. Đây là do thiết kế. Xem # 46825