Chạy debug WordPress là cách tốt nhất để kiểm tra lỗi trong quá trình bạn viết code. Bài viết này sẽ dành cho các bạn đang phát triển giao diện hoặc plugin cho WordPress. Nội dung bài này sẽ hướng dẫn cho bạn cách bật debug, kiểm tra lỗi phát sinh trong quá trình viết code nhằm giúp sản phẩm của bạn được hoàn thiện hơn.
Mục lục nội dung
Hướng dẫn chạy debug WordPress
Chạy debug PHP là một phần quan trọng của mọi dự án lập trình web dựa trên mã nguồn mở PHP. Đối với WordPress thì hệ thống debug được thiết kế để bạn có thể sử dụng một cách dễ dàng nhằm kiểm tra lỗi trong quá trình viết code. Nó có thể kiểm tra được code trong nhân của WordPress cũng như kiểm tra code của giao diện và plugin.
WP_DEBUG
Biến WP_DEBUG
là một hằng số được khai báo trong tập tin wp-config.php
. Hằng này có chức năng cho phép bạn bật hoặc tắt debug trong WordPress. WP_DEBUG
là hằng số có giá trị là kiểu bool (đúng hoặc sai). Bạn có thể khai báo trong tập tin wp-config.php
, nếu bạn đặt giá trị là true
thì có nghĩa là chức năng debug được bật, ngược lại nếu bạn đặt là false
thì chức năng debug được đặt trong trạng thái tắt.
define('WP_DEBUG', true); // Or define('WP_DEBUG', false);
Chú ý: Giá trị của hằng số WP_DEBUG
là thuộc kiểu boolean
(true/false), do vậy bạn chỉ cần gõ vào giá trị là true
hoặc false
, bạn không cần phải để dấu nháy đơn hoặc nháy kép hoặc bất kỳ thứ gì khác vào đây. Nếu bạn điền giá trị là ‘false’ thì hằng này được coi như là có giá trị true vì chữ false được bỏ trong dấu nháy đơn nên nó được coi là một chuỗi.
Và bạn chỉ cần bật debug để kiểm tra lỗi phát sinh trong quá trình thực hiện code thử nghiệm, còn đối với các trang hoạt động chính thức thì bạn nên tắt chức năng này đi.
PHP Errors, Warnings và Notices
Đây là những dạng bạn hay thấy trong khi lập trình PHP, nếu bạn bật chức năng chạy debug thì hệ thống sẽ theo dõi các dòng code mà phát sinh ra lỗi, hoặc cảnh báo hoặc là chú ý.
Tùy vào cấu hình của bạn mà các thông báo này được xuất ra ngoài trang web hoặc không. Nếu bạn không cho xuất ra bên ngoài thì hệ thống sẽ sao lưu lại thông báo lỗi trong một tập tin log để bạn có thể xem và khắc phục.
Thật khó để bạn có thể tìm ra lỗi ở một dự án lớn nếu như không có chức năng debug này. Đối với WordPress cũng vậy, nếu bạn bật debug lên thì mọi lỗi trong dự án của bạn đều có thể được tìm thấy dễ dàng.
Deprecated Functions và Arguments
Deprecated là thông báo các hàm hoặc các tham số đầu vào được thay thế bởi các hàm hoặc tham số đầu vào khác. Nếu bạn bật chức năng chạy debug thì tất cả các hàm và tham số được đánh dấu là deprecated sẽ được hệ thống cảnh báo.
Deprecated có nghĩa là bạn phải sử dụng hàm mới hoặc tham số mới để thay thế, vì các hàm cũ sẽ không còn tương thích đối với phiên bản mới hoặc các hàm này có thể bị xóa bỏ trong tương lai.
WP_DEBUG_LOG
WP_DEBUG_LOG là một hằng số có giá trị là kiểu bool như mình nói ở bên trên. Nếu như bạn khai báo hằng số này có giá trị là true thì các thông báo lỗi sẽ được lưu lại vào tập tin debug.log.
define('WP_DEBUG_LOG', true);
Bạn có thể tìm thấy tập tin sao debug.log
trong thư mục wp-content của WordPress, trong này sẽ chứa các thông báo lỗi cũng như nội dung khác bạn ghi vào trong quá trình kiểm tra debug WordPress.
WP_DEBUG_DISPLAY
WP_DEBUG_DISPLAY là một hằng số có giá trị là kiểu bool, bạn có thể bật hoặc tắt chức năng cho phép hiển thị thông báo lỗi ra ngoài màn hình hoặc là ẩn tất cả thông báo lỗi.
Bật debug trong tập tin wp-config.php
Bên dưới là ví dụ cơ bản nhất về cách bật chức năng debug WordPress để kiểm tra lỗi. Bạn có thể thêm vào các dòng khai báo bên dưới vào trong tập tin wp-config.php
. Nhớ là phải thay lại hằng số WP_DEBUG
có sẵn trong tập tin config đi nhé.
// Bật chức năng chạy debug define('WP_DEBUG', true); // Bật chức năng sao lưu thông báo lỗi vào tập tin /wp-content/debug.log define('WP_DEBUG_LOG', true); // Ẩn các thông báo lỗi và cảnh báo ra bên ngoài màn hình define('WP_DEBUG_DISPLAY', false); @ini_set('display_errors', 0);
Nếu bạn muốn chạy debug WordPress một cách đầy đủ hơn thì bạn làm như sau. Bạn hãy thay thế nguyên đoạn chú thích trước khi khai báo hằng số WP_DEBUG
và cả dòng khai báo hằng số này thành đoạn code như bên dưới:
define( 'WP_DEBUG', true ); /* Add any custom values between this line and the "stop editing" line. */ /** * Auto detect domain */ $protocol = ( isset( $_SERVER['HTTPS'] ) && strtolower( $_SERVER['HTTPS'] ) != 'off' ) ? 'https://' : 'http://'; $url = $protocol . $_SERVER['SERVER_NAME']; $folder = basename( dirname( __FILE__ ) ); if ( ! empty( $folder ) && false === strpos( $url, $folder ) ) { $url .= '/'; $url .= $folder; } define( 'WP_HOME', $url ); define( 'WP_SITEURL', WP_HOME ); /** * Change defaults value for better performance */ define( 'WP_MEMORY_LIMIT', '256M' ); define( 'WP_MAX_MEMORY_LIMIT', '256M' ); define( 'EMPTY_TRASH_DAYS', 3 ); define( 'AUTOSAVE_INTERVAL', 300 ); define( 'WP_POST_REVISIONS', 1 ); define( 'WP_DEBUG_LOG', WP_DEBUG ); define( 'SAVEQUERIES', false ); define( 'WP_DEBUG_DISPLAY', false ); @ini_set( 'log_errors', 'On' ); @ini_set( 'display_errors', 'Off' ); /* That's all, stop editing! Happy publishing. */
Trong trường hợp bạn muốn áp dụng cho trang chính của bạn đang hoạt động trên mạng, bạn chỉ cần tắt debug đi là được nhé. Bạn chỉ cần khai báo dòng define( 'WP_DEBUG', true );
thành define( 'WP_DEBUG', false);
.
Xem thêm
Bạn cũng có thể tìm đọc các bài viết khác có liên quan đến việc lập trình web trên HocWP. Ngoài ra bạn cũng có thể xem thêm bài viết Debugging in WordPress trên trang Codex của WordPress. Chúc bạn thành công.