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_HANDLER
hằng số true
trong wp-config.php
tệ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_enabled
bộ 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_enabled
lọc sẽ ghi đè giá trị của WP_DISABLE_FATAL_ERROR_HANDLER
hằ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.php
vào wp-content
thư mục ( src ), để ghi đè WP_Fatal_Error_Handler
lớ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_Handler
lớp mặc định nếu cần.
Sau đó, có WP_SANDBOX_SCRAPING
hằ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