Hướng dẫn gỡ lỗi trong wordpress

Sơ đồ trang

  • Tại sao mặc định WordPress lại ẩn các thông báo lỗi
  • Các hằng gỡ lỗi trong WordPress
    • WP_DEBUG
    • WP_DEBUG_LOG
    • WP_DEBUG_DISPLAY
    • SAVEQUERIES
  • Gỡ lỗi với các plugin
    • Query Monitor
    • Debug Bar
  • Kết luận

Bất cứ ngôn ngữ lập trình nào đều có chế độ thông báo lỗi cho lập trình viên, để từ đó họ có thể dò ra bug mà tìm cách khắc phục và WordPress chạy ở ngôn ngữ PHP nên cũng có các hàm để các lập trình viên dễ dàng tìm ra vấn đề gì đang gặp phải.

Theo mặc định, WordPress ẩn các thông báo lỗi khi tải trang.

Nếu bạn muốn thực hiện gỡ lỗi PHP và API WordPress, bạn cần thực hiện một số điều chỉnh để cho phép WordPress hiển thị lỗi cụ thể nào đó cho bạn biết và sửa chữa.

Tại sao mặc định WordPress lại ẩn các thông báo lỗi

Bạn thử tưởng tượng các lỗi bảo mật đều show ra khi khách truy cập thì có gì hay ho :D, hiển thị lỗi như vậy có thể làm lộ các thông tin quan trọng trong website mà hacker có thể khai thác tấn công chiếm quyền website.

Trong giai đoạn phát triển, codex WP khuyến khích các lập trình viên nên kích hoạt chế độ gỡ lỗi trong WordPress (WordPress debugging)

Trên thực tế, việc bật gỡ lỗi WordPress sẽ có 2 cách.

  • Lỗi PHP: Nó hiển thị lỗi do viết code PHP gây ra
  • Các hàm đã bị hủy bỏ hoặc không tồn tại: Có thể các hàm đã được sử dụng trong các phiên bản trước đó,nhưng giờ đã bị loại bỏ

Trong bài đăng này, hãy cùng xem qua các hằng gỡ lỗi được xây dựng riêng trong WordPress

Hướng dẫn gỡ lỗi trong wordpress

Các hằng gỡ lỗi trong WordPress

Một số hằng số bạn có thể bật lên để xem lỗi phát sinh trong WordPress

– WP_DEBUG
– WP_DEBUG_LOG
– WP_DEBUG_DISPLAY
– SCRIPT_DEBUG
– Logging query

WP_DEBUG

Hằng số PHP quan trọng nhất có thể được sử dụng để kích hoạt chế độ gỡ lỗi trên trang web của bạn là WP_DEBUG.

Theo mặc định, hằng số PHP này được đặt thành false. Nó sẽ được đặt trong file wp-config.php

define( 'WP_DEBUG', false);

Để bật chế độ debug bạn chỉ cần đổi false thành true

define( 'WP_DEBUG', true);

Dưới đây là một vài điều, bạn sẽ cần ghi nhớ trước khi bật gỡ lỗi WordPress.

– Hãy cẩn thận trước khi thực hiện bất kỳ sự thay đổi nào đối với file wp-config.php vì đây là tệp quan trọng nhất trong cài đặt cấu hình truy cập cơ sở dữ liệu, cải thiện hiệu suất và cải thiện bảo mật WordPress. Việc mắc một lỗi nhỏ trong cấu hình có thể khiến trang web của bạn không thể truy cập được

– Hãy chắc chắn rằng bạn gỡ lỗi WordPress trên một trang web đang chạy trên tên miền chính mà hãy tạo ra 1 bản clone để debug ở localhost hoặc ở 1 domain phụ. Vì khi debug ở tên miền chính thông tin quan trọng có thể bị lộ

Hướng dẫn gỡ lỗi trong wordpress

WP_DEBUG_LOG

Để có thể xem lại lỗi và thông báo lỗi ở bất kỳ nơi nào website của bạn thì bạn có thể bật WP_DEBUG_LOG

Để tạo tệp nhật ký gỡ lỗi (log file) trên WordPress, bạn sẽ cần bật WordPress gỡ lỗi ghi nhật ký WP_DEBUG_LOG. Hằng số này về cơ bản buộc WordPress phải ghi các đầu ra gỡ lỗi vào một tệp nhật ký (log file).

Bật WP_DEBUG_LOG bạn cũng đơn giản dán mã này vào file config.php như với hằng define( ‘WP_DEBUG’, true); mà thôi

define( 'WP_DEBUG_LOG', true);

Khi bật WP_DEBUG_LOG thì sẻ có 1 file debug.log nằm trong cài đặt thư mục wp-content, để xem tất cả danh sách lỗi thì bạn chỉ cần mở file debug.log lên bằng notedpad và xem.

Hướng dẫn gỡ lỗi trong wordpress

WP_DEBUG_DISPLAY

WP_DEBUG_DISPLAY là một chức năng cần được tắt để ngăn thông báo lỗi hiển thị trên trang web của bạn. Theo mặc định, mỗi khi có lỗi, nó sẽ được tạo và hiển thị bên trong mã HTML của trang web của bạn. Không giống như WP_DEBUG, giá trị mặc định của WP_DEBUG_DISPLAY được đặt thành true và cần được thay đổi thành false để ẩn tất cả các lỗi.

Để bật chức năng này bạn cần thêm đoạn mã này vào file wp-config.php

define( 'WP_DEBUG_DISPLAY', true);

Nếu website của bạn có lỗi nó sẻ hiển thị lỗi ở đầu trang web như hình dưới đây

Hướng dẫn gỡ lỗi trong wordpress

SAVEQUERIES

Trong khi gỡ lỗi, bạn có thể debug với các truy vấn trong cơ sở dữ liệu. Cụ thể, nếu bạn đang khắc phục sự cố và các vấn đề về hiệu suất, bạn có thể muốn kiểm tra chính xác những truy vấn nào đang chạy thì có thể dán biến dưới đây vào file wp-config.php

define( 'SAVEQUERIES', true);

Khi bật tùy chọn này, tất cả các truy vấn sẽ được lưu trong biến toàn cục $wpdb->queries. Bạn có thể thêm đoạn code PHP sau vào một tệp trong WordPress và xem kết quả.

global $wpdb;
print_r( $wpdb->queries );
?>

Kết luận

Để bật debug bạn copy các hằng số sau và dán vào file wp-config.php

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true);
define( 'WP_DEBUG_DISPLAY', true);
define( 'SAVEQUERIES', true);

Nếu bạn muốn tắt debug hoàn toàn có thể thêm đoạn code phía dưới đây vào file wp-config.php

define( 'WP_DEBUG', false);
define( 'WP_DEBUG_LOG', false);
define( 'WP_DEBUG_DISPLAY', false);
define( 'SAVEQUERIES', false);
ini_set('display_errors','Off');
ini_set('error_reporting', E_ALL );

Hướng dẫn gỡ lỗi trong wordpress

Gỡ lỗi với các plugin

Có nhiều plugin hỗ trợ chế độ gỡ lỗi trên WordPress mà bạn có thể sử dụng như: Query Monitor, Debug Bar và Log Deprecated

Query Monitor

Query Monitor là một plugin cho phép bạn xem chính xác các plugin khác nhau trong WordPress của bạn đang hoạt động như thế nào.

Plugin này có thể:

– debug queries
– monitor PHP errors
– check hooks and actions
– HTTP API calls
– monitor enqueued scripts and stylesheets
– debugging of AJAX calls

Hướng dẫn gỡ lỗi trong wordpress

Debug Bar

Plugin này thường được sử dụng bởi các nhà phát triển vì có thể thêm chế độ debug cho theme hoặc plugin của họ. Debug Bar sẻ thêm một menu gỡ lỗi vào thanh quản trị WordPress và hiển thị truy vấn, bộ đệm và thông tin gỡ lỗi trong WordPress khác mà bạn có thể xem

Hướng dẫn gỡ lỗi trong wordpress

Kết luận

Ở phiên bản WordPress mới nếu website của bạn gặp vấn đề gì đó sẻ có 1 email gửi đến bạn thông báo là website gặp lỗi nhưng sẻ không chỉ rõ là lỗi gì cả vì vậy để biết chính xác lỗi gì bạn hãy bật debug lên để biết lỗi phải gì mà fix.

Hướng dẫn gỡ lỗi trong wordpress

Nếu website của bạn gặp sự cố gì quá nghiêm trọng mà chưa có phương hướng giải quyết thì hãy liên hệ với chúng tôi để được trợ giúp nhé!

Cảm ơn bạn đã ghé thăm Vũ Trụ Số!

Hướng dẫn gỡ lỗi trong wordpress