Gỡ lỗi trong WordPress

Tác giả Network Engineer, T.Mười 06, 2021, 05:29:50 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 2 Khách đang xem chủ đề.

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à giao diện. Bài viết 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à khả năng tương tác của mã của bạn.

Đối với những 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 chi tiết về lỗi.

1. Ví dụ wp-config.php để gỡ lỗi.

Đoạn mã sau, được chèn vào tập tin 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 tin 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.

Mã nguồn [Chọn]
// Enable WP_DEBUG mode
define( 'WP_DEBUG', true );

// Enable Debug logging to the /wp-content/debug.log file
define( 'WP_DEBUG_LOG', true );

// Disable display of errors and warnings
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

// Use dev versions of core JS and CSS files (only needed if you are modifying these core files)
define( 'SCRIPT_DEBUG', true );

Lưu ý: Bạn phải chèn cái này bên trên /* That's all, stop editing! Happy blogging. */ trong tập tin wp-config.php.

2. WP_DEBUG.

WP_DEBUG là một hằng số PHP (một biến toàn cục 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 giả định là false theo mặc định và thường được đặt thành true trong tập tin wp-config.php trên các bản sao phát triển của WordPress.

Mã nguồn [Chọn]
// This enables debugging.
define( 'WP_DEBUG', true );

// This disables debugging.
define( 'WP_DEBUG', false );

Lưu ý: Các giá trị true và false 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 chứ không phải là boolean.

Không được khuyến khích sử dụng WP_DEBUG hoặ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.

2.1. Lỗi PHP, Cảnh báo và Thông báo.

Việc kích hoạt WP_DEBUG sẽ 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ẻ 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.

2.2. Các hàm và đối số không được dùng nữa.

Việc bật WP_DEBUG cũ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à những hàm hoặc đối số hàm vẫn 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ế.


3. 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 tin 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).

Lưu ý rằng điều này cho phép bạn ghi vào tập tin nhật ký bằng cách sử dụng hàm error_log() 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ý được lưu debug.log vào thư mục nội dung (thường wp-content/debug.log) trong hệ thống tập tin của trang web của bạn. Ngoài ra, bạn có thể đặt nó thành một đường dẫn tập tin hợp lệ để tập tin được lưu ở nơi khác.

Mã nguồn [Chọn]
define( 'WP_DEBUG_LOG', true );
Hoặc

Mã nguồn [Chọn]
define( 'WP_DEBUG_LOG', '/tmp/wp-errors.log' );
Lưu ý: WP_DEBUG_LOG để làm bất cứ điều gì, WP_DEBUG phải được kích hoạt (true). Hãy nhớ rằng bạn có thể tắt WP_DEBUG_DISPLAY một cách độc lập.

4. WP_DEBUG_DISPLAY.

WP_DEBUG_DISPLAY là một đồng hành khác để WP_DEBUG kiể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.

Mã nguồn [Chọn]
define( 'WP_DEBUG_DISPLAY', false );
Lưu ý: WP_DEBUG_DISPLAY để làm bất cứ điều gì, WP_DEBUG phải được kích hoạt (true). Hãy nhớ rằng bạn có thể kiểm soát WP_DEBUG_LOG một cách độc lập.

5. SCRIPT_DEBUG.

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

Mã nguồn [Chọn]
define( 'SCRIPT_DEBUG', true );
6. SAVEQUERIES.

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ó.

Mã nguồn [Chọn]
define( '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.