Cách xuất thông báo trong quá trình kích hoạt plugin


9

Tôi đang phát triển một plugin, nhưng trong quá trình kích hoạt, tôi liên tục gặp phải lỗi. Tuy nhiên, không có cách dễ dàng để hiển thị thông báo lỗi, vì công cụ lặp lại sẽ dẫn đến lỗi 'đầu ra chưa được khai thác'. Tôi đã thử hook admin_message nhưng nó không hoạt động. Làm cách nào tôi có thể cảnh báo người dùng nếu một số giai đoạn kích hoạt không thành công với lý do?

Câu trả lời:


9

Đối với mục đích thử nghiệm, bạn có thể sử dụng hệ thống nhật ký (php_error.log):

error_log('Plugin activated', 0);

// Check for DB table existance
if(!$this->hasDBTable()){
    error_log('Database not present', 0);
    if($this->createCELabelsDBTables()){
        error_log('Database was created.', 0);
    } else {
        error_log('Error creating the CE Labels Plugin db tables!', 0);
    }

} else {
    error_log('Database OK', 0);
}

Để xuất lỗi cho người dùng mà không có lỗi "Tiêu đề đã được gửi", bạn có thể sử dụng chức năng php trigger_error:

trigger_error('PLUGIN OK',E_USER_ERROR);

Với Wordpress phải luôn là E_USER_ERROR hoặc nó sẽ không hiển thị thông báo.

Tôi biết error_log hoạt động hoàn hảo vì tôi đang sử dụng nó, nhưng trigger_error hiển thị phải thông tin. Hãy thử và cảm nhận bản thân mình :)


Bạn có biết nơi tôi có thể tìm thêm tài liệu về hàm error_log không? Tôi đang gặp khó khăn để tìm ra cách để làm cho nó hoạt động.
Nathan Arthur

Dành cho những người có thể đến sau: php.net/manual/en/feft.error-log.php
Nathan Arthur

3

GIẢI PHÁP:

register_activation_hook( __FILE__, 'my_activation_func' ); function my_activation_func() {
    file_put_contents(__DIR__.'/my_loggg.txt', ob_get_contents());
}

chèn mã này vào plugin và sau khi gặp lỗi, hãy xem "my_loggg.txt" trong thư mục plugin của bạn.


Điều này làm việc cho tôi, nhưng tôi phải đặt nó ở dưới cùng của tập tin! Nếu không, nó đã không nắm bắt được đầu ra.
Ben Ogorek

0

1) Vui lòng xóa khoảng cách thêm trong các trang bên trong hoặc trang plugin.

2) loại bỏ kiểu nội tuyến trong các trang hoặc trang plugin.

nó làm việc cho tôi mọi lúc. tôi đã sử dụng nhiều lần cùng một phương pháp. khi xảy ra lỗi trong trang plugin hoặc trang Wordpress.

Trân trọng,

Hitesh Nagpal

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.