Chuyên mục
Kiến thức

Cách tìm và gỡ lỗi trong WordPress

Gỡ lỗi mã PHP là một phần của bất kỳ dự án nào, nhưng WordPress đi kèm với các hệ thống gỡ lỗi cụ thể được thiết kế để đơn giản hóa quy trình cũng như chuẩn hóa mã trên lõi, plugin và chủ đề. Trang này mô tả các công cụ gỡ lỗi khác nhau trong WordPress và cách hiệu quả hơn trong việc viết mã của bạn cũng như tăng chất lượng tổng thể và tính tương tác của mã của bạn.

Đối với người không phải là lập trình viên hoặc người dùng phổ thông, các tùy chọn này có thể được sử dụng để hiển thị thông tin lỗi chi tiết.

WP_DEBUG #WP_DEBUG
WP_DEBUGlà một hằng số PHP (một biến toàn cầu vĩnh viễn) có thể được sử dụng để kích hoạt chế độ “gỡ lỗi” trên toàn bộ WordPress. Nó được cho là false theo mặc định và thường được đặt thành true trong tệp wp-config.php trên các bản sao phát triển của WordPress.

// Điều này cho phép gỡ lỗi.
xác định (‘WP_DEBUG’, true);
// Điều này vô hiệu hóa gỡ lỗi.
xác định (‘WP_DEBUG’, false);
Lưu ý : Các giá trị truevà falsegiá trị trong ví dụ không được bao quanh bởi dấu nháy đơn (‘) vì chúng là các giá trị boolean (true / false). Nếu bạn đặt hằng số thành ‘false’, chúng sẽ được hiểu là true vì dấu ngoặc kép làm cho nó thành một chuỗi thay vì một boolean.

Nó không được khuyến khích sử dụng WP_DEBUGhoặc các công cụ gỡ lỗi khác trên các trang web trực tiếp; chúng dành cho thử nghiệm cục bộ và cài đặt theo giai đoạn.

Lỗi PHP, Cảnh báo và Thông báo #Lỗi PHP, Cảnh báo và Thông báo
Việc kích hoạt WP_DEBUGsẽ hiển thị tất cả các lỗi PHP, thông báo và cảnh báo. Điều này có khả năng sửa đổi hành vi mặc định của PHP vốn chỉ hiển thị các lỗi nghiêm trọng và / hoặc hiển thị màn hình trắng chết khi gặp lỗi.

Hiển thị tất cả các thông báo và cảnh báo PHP thường dẫn đến thông báo lỗi cho những thứ có vẻ như không bị hỏng, nhưng không tuân theo các quy ước xác thực dữ liệu phù hợp bên trong PHP. Những cảnh báo này rất dễ sửa sau khi mã có liên quan đã được xác định và mã kết quả hầu như luôn có khả năng chống lỗi cao hơn và dễ bảo trì hơn.

↑ trên cùng

Phản Chức năng và Arguments #Các hàm và đối số không được dùng nữa
Bật WP_DEBUGcũng sẽ gây ra thông báo về các hàm và đối số không dùng nữa trong WordPress đang được sử dụng trên trang web của bạn. Đây là các hàm hoặc đối số hàm chưa được xóa khỏi mã lõi nhưng dự kiến ​​sẽ bị xóa trong tương lai gần. Thông báo ngừng sử dụng thường chỉ ra chức năng mới nên được sử dụng thay thế.

↑ trên cùng

WP_DEBUG_LOG #WP_DEBUG_LOG
WP_DEBUG_LOG là bạn đồng hành với WP_DEBUG khiến tất cả các lỗi cũng được lưu vào tệp nhật ký debug.log Điều này hữu ích nếu bạn muốn xem lại tất cả các thông báo sau này hoặc cần xem các thông báo được tạo ngoài màn hình (ví dụ: trong một yêu cầu AJAX hoặc wp-cron chạy).

Lưu ý rằng điều này cho phép bạn ghi vào tệp nhật ký bằng cách sử dụng error_log()hàm tích hợp sẵn của PHP , có thể hữu ích, chẳng hạn như khi gỡ lỗi các sự kiện Ajax.

Khi được đặt thành true, nhật ký sẽ được lưu debug.logvào thư mục nội dung (thường wp-content/debug.log) trong hệ thống tệp của trang web của bạn. Ngoài ra, bạn có thể đặt nó thành đường dẫn tệp hợp lệ để tệp được lưu ở nơi khác.

xác định (‘WP_DEBUG_LOG’, true);
-hoặc-
define ( ‘WP_DEBUG_LOG’, ‘/tmp/wp-errors.log’);
Lưu ý : WP_DEBUG_LOGđể làm bất cứ điều gì, WP_DEBUGphải được kích hoạt (true). Hãy nhớ rằng bạn có thể tắt WP_DEBUG_DISPLAYmột cách độc lập.

↑ trên cùng

WP_DEBUG_DISPLAY #WP_DEBUG_DISPLAY
WP_DEBUG_DISPLAYlà một đồng hành khác để WP_DEBUGkiểm soát xem thông báo gỡ lỗi có được hiển thị bên trong HTML của các trang hay không. Giá trị mặc định là ‘true’ hiển thị các lỗi và cảnh báo khi chúng được tạo. Đặt giá trị này thành false sẽ ẩn tất cả các lỗi. Điều này nên được sử dụng kết hợp với WP_DEBUG_LOGđể các lỗi có thể được xem xét lại sau này.

xác định (‘WP_DEBUG_DISPLAY’, false);
Lưu ý : WP_DEBUG_DISPLAYđể làm bất cứ điều gì, WP_DEBUGphải được kích hoạt (true). Hãy nhớ rằng bạn có thể kiểm soát WP_DEBUG_LOGmột cách độc lập.

↑ trên cùng

SCRIPT_DEBUG #SCRIPT_DEBUG
SCRIPT_DEBUGlà một hằng số có liên quan sẽ buộc WordPress sử dụng phiên bản “dev” của các tệp CSS và JavaScript cốt lõi thay vì các phiên bản rút gọn thường được tải. Điều này hữu ích khi bạn đang thử nghiệm các sửa đổi đối với bất kỳ tệp .js hoặc .css nào được tích hợp sẵn. Mặc định là sai.

define( ‘SCRIPT_DEBUG’, true );
↑ trên cùng

SAVEQUERIES #TIẾT KIỆM
Các SAVEQUERIESđịnh nghĩa tiết kiệm các truy vấn cơ sở dữ liệu vào một mảng và mảng có thể được hiển thị để giúp phân tích các truy vấn. Hằng số được xác định là true khiến mỗi truy vấn được lưu, truy vấn đó mất bao lâu để thực thi và hàm nào gọi nó.

xác định (‘SAVEQUERIES’, true);
Mảng được lưu trữ trong toàn cục $wpdb->queries.

LƯU Ý : Điều này sẽ ảnh hưởng đến hiệu suất trên trang web của bạn, vì vậy hãy đảm bảo tắt tính năng này khi bạn không gỡ lỗi.

↑ trên cùng

Ví dụ wp-config.php cho Debugging #Ví dụ wp-config.php để gỡ lỗi
Đoạn mã sau, được chèn trong tệp wp-config.php của bạn , sẽ ghi lại tất cả các lỗi, thông báo và cảnh báo vào tệp có tên debug.log trong thư mục wp-content. Nó cũng sẽ ẩn các lỗi để chúng không làm gián đoạn quá trình tạo trang.

// Bật chế độ WP_DEBUG
xác định (‘WP_DEBUG’, true);

// Bật ghi nhật ký Gỡ lỗi vào tệp /wp-content/debug.log
define (‘WP_DEBUG_LOG’, true);

// Tắt hiển thị lỗi và cảnh báo
xác định (‘WP_DEBUG_DISPLAY’, false);
@ini_set (‘display_errors’, 0);

// Sử dụng phiên bản dev của các tệp JS và CSS lõi (chỉ cần thiết nếu bạn đang sửa đổi các tệp lõi này)
define (‘SCRIPT_DEBUG’, true);
LƯU Ý : Bạn phải chèn cái này TRƯỚC /* That’s all, stop editing! Happy blogging. */ vào tệp wp-config.php .

↑ trên cùng

Gỡ lỗi Plugin #Gỡ lỗi plugin
Có nhiều plugin gỡ lỗi cho WordPress hiển thị thêm thông tin về nội bộ, cho một thành phần cụ thể hoặc nói chung. Dưới đây là một số ví dụ:

Giám sát truy vấn
Thanh gỡ lỗi
Ghi nhật ký Thông báo không được tán thành
↑ trên cùng

Tài nguyên bên ngoài #Nguồn lực bên ngoài
Trình tạo tệp WordPress ‘wp-config.php’
Plugin ‘No White Screen’: Hiển thị lỗi thay vì màn hình trắng