Gần đây, một trong những độc giả của chúng tôi đã hỏi làm cách nào để tắt lỗi PHP trong WordPress? . Tuy nhiên, nó trông cực kỳ thiếu chuyên nghiệp khi chúng hiển thị với tất cả khách truy cập trang web của bạn. Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách dễ dàng tắt lỗi PHP trong WordPress
Tại sao và khi nào bạn nên tắt lỗi PHP trong WordPress?
Các lỗi PHP mà bạn có thể thấy trên trang web WordPress của mình thường là các cảnh báo và thông báo. Đây không giống như lỗi máy chủ nội bộ, lỗi cú pháp hoặc lỗi nghiêm trọng khiến trang web của bạn không tải được
Thông báo và cảnh báo là loại lỗi không ngăn WordPress tải trang web của bạn. Xem cách WordPress thực sự hoạt động đằng sau hậu trường để biết thêm chi tiết
Mục đích của những lỗi này là để giúp các nhà phát triển gỡ lỗi các vấn đề với mã của họ. Các nhà phát triển plugin và chủ đề cần thông tin này để kiểm tra tính tương thích và các phương pháp hay nhất
Tuy nhiên, nếu bạn không phát triển chủ đề, plugin hoặc trang web tùy chỉnh thì những lỗi này sẽ bị ẩn đi. Bởi vì nếu chúng xuất hiện ở mặt trước của trang web của bạn cho tất cả khách truy cập của bạn, điều đó trông cực kỳ thiếu chuyên nghiệp
Nếu bạn thấy lỗi như trên trên trang web của mình, thì bạn có thể muốn thông báo cho nhà phát triển plugin hoặc chủ đề tương ứng. Họ có thể phát hành một bản sửa lỗi sẽ làm cho lỗi biến mất. Trong khi đó, bạn cũng có thể tắt các lỗi này
Hãy xem cách dễ dàng tắt các lỗi, thông báo và cảnh báo PHP trong WordPress
Tắt lỗi PHP trong WordPress
Đối với phần này, bạn sẽ cần chỉnh sửa wp-config. tập tin php
Bên trong wp-config của bạn. php, hãy tìm dòng sau
define['WP_DEBUG', true];
Cũng có thể, dòng này đã được đặt thành false. Trong trường hợp đó, bạn sẽ thấy đoạn mã sau
define['WP_DEBUG', false];
Trong cả hai trường hợp, bạn cần thay thế dòng này bằng đoạn mã sau
ini_set['display_errors','Off']; ini_set['error_reporting', E_ALL ]; define['WP_DEBUG', false]; define['WP_DEBUG_DISPLAY', false];
Đừng quên lưu các thay đổi của bạn và tải lên wp-config của bạn. php trở lại máy chủ
Giờ đây, bạn có thể truy cập trang web của mình để xác nhận rằng các lỗi, thông báo và cảnh báo PHP đã biến mất khỏi trang web của bạn
Bật lỗi PHP trong WordPress
Nếu bạn đang làm việc trên một trang web trên máy chủ cục bộ hoặc khu vực tổ chức, thì bạn có thể muốn bật báo cáo lỗi. Trong trường hợp đó, bạn cần chỉnh sửa wp-config của mình. php và thay thế mã bạn đã thêm trước đó bằng mã sau
define['WP_DEBUG', true]; define['WP_DEBUG_DISPLAY', true];
Mã này sẽ cho phép WordPress bắt đầu hiển thị lại các lỗi, cảnh báo và thông báo PHP
Chúng tôi hy vọng bài viết này đã giúp bạn tìm hiểu cách tắt lỗi php trong WordPress. Bạn cũng có thể muốn xem danh sách các lỗi WordPress phổ biến nhất của chúng tôi và cách khắc phục chúng
Nếu bạn thích bài viết này, vui lòng đăng ký Kênh YouTube của chúng tôi để xem các video hướng dẫn về WordPress. Bạn cũng có thể tìm thấy chúng tôi trên Twitter và Facebook
Trong PHP, Thông báo là các biến không xác định được chỉ định trong dự án PHP trên một tập hợp các dòng hoặc các dòng cụ thể. Nó thường không ảnh hưởng hoặc phá vỡ chức năng của mã được viết. Khi thông báo PHP phát hiện lỗi, nó sẽ hiển thị như thế này
Ẩn tất cả các thông báo cảnh báo về cơ bản giống như bật nhạc trong ô tô của bạn để bạn không thể nghe thấy tiếng ồn đáng lo ngại mà động cơ của bạn đang tạo ra
Ẩn các cảnh báo PHP bằng hàm error_reporting
Hàm error_reporting cho phép chúng ta báo cho PHP biết lỗi nào cần báo cáo
Ví dụ: nếu chúng tôi muốn hiển thị tất cả các thông báo lỗi ngoại trừ cảnh báo, chúng tôi có thể sử dụng dòng mã sau
//Report all errors except warnings. error_reporting[E_ALL ^ E_WARNING];
Thông thường, hàm error_reporting nên được đặt ở đầu mã của bạn. Điều này là do chức năng chỉ có thể kiểm soát các lỗi xảy ra trong mã bên dưới nó
Tôi có thể ẩn các thông báo PHP không?
Nếu bạn cũng muốn ẩn các thông báo, thì bạn có thể đặt mức sau trong hàm error_reporting
//Only report fatal errors and parse errors. error_reporting[E_ERROR | E_PARSE]; //This will usually create a division by 0 //warning message. echo 1 / 0; //This will usually create an array to string //notice message. echo array[];
Trong đoạn mã trên, chúng tôi đã nói với PHP rằng nó chỉ nên báo cáo lỗi nghiêm trọng [E_ERROR] và lỗi phân tích cú pháp [E_PARSE]
Sau đó, chúng tôi đã tạo hai dòng mã
- Chúng tôi chia 1 cho 0, điều này thường dẫn đến “Cảnh báo. Thông điệp chia cho số 0
- Sau đó, chúng tôi đã cố gắng lặp lại một mảng. Trong trường hợp bình thường, điều này sẽ gây ra thông báo sau. "Lưu ý. Chuyển đổi mảng thành chuỗi”
Nếu chạy ví dụ trên, bạn sẽ thấy trang không hiển thị bất kỳ thông báo hay cảnh báo nào. Hơn nữa, nếu bạn kiểm tra nhật ký lỗi PHP, bạn sẽ thấy rằng chúng cũng chưa được ghi lại
Ngừng hiển thị thông báo cảnh báo
Nếu bạn chỉ muốn dừng hiển thị các thông báo cảnh báo, nhưng không ngăn chúng được ghi lại, thì bạn có thể sử dụng đoạn mã sau
//Tell PHP to log errors ini_set['log_errors', 'On']; //Tell PHP to not display errors ini_set['display_errors', 'Off']; //Set error_reporting to E_ALL ini_set['error_reporting', E_ALL ];
Ở đây, chúng tôi đang sử dụng hàm ini_set của PHP để tự động sửa đổi cài đặt trong tệp php của chúng tôi. tập tin ini
- Chúng tôi đặt log_errors thành Bật , có nghĩa là PHP sẽ ghi các cảnh báo vào nhật ký lỗi của chúng tôi.
- Chúng tôi đặt display_errors thành Tắt . Kết quả là PHP sẽ không xuất lỗi ra màn hình.
- Cuối cùng, chúng tôi đặt error_reporting thành E_ALL
Ghi chú. Nếu bạn có thể truy cập php của bạn. ini, thì có lẽ bạn nên chỉnh sửa trực tiếp các giá trị này thay vì thay đổi chúng một cách nhanh chóng
Sử dụng ký tự @ để chặn lỗi
Trong một số trường hợp, bạn có thể không kiểm soát được một số cảnh báo
Ví dụ: yêu cầu GET tới API bên ngoài có thể không thành công, dẫn đến cảnh báo "không thể mở luồng". Để ngăn điều này xảy ra, chúng ta có thể sử dụng ký tự @ như vậy
//API URL $url = '//example.com/api'; //Attempt to get contents of that URL $result = @file_get_contents[$url];
Như bạn có thể thấy, chúng tôi đã đặt ký tự @ [AT] bên cạnh lệnh gọi hàm của chúng tôi. Điều này có nghĩa là nếu file_get_contents bị lỗi, nó sẽ không đưa ra thông báo E_WARNING
Điều này hoạt động vì ký tự @ là toán tử kiểm soát lỗi yêu cầu PHP bỏ qua mọi lỗi
Lưu ý rằng nên sử dụng hạn chế lỗi. Lạm dụng toán tử điều khiển này có thể dẫn đến các sự cố khó gỡ lỗi
Tại sao tôi không nên chặn tất cả các thông báo cảnh báo?
Thông báo E_WARNING là một lỗi không ngăn phần còn lại của tập lệnh PHP của bạn thực thi. Mặc dù nó không dừng tập lệnh nhưng nó vẫn bị lỗi. Điều đó có nghĩa là một cái gì đó trong mã của bạn không hoạt động theo cách mà nó được cho là đang hoạt động
Bạn nên luôn cố gắng giải quyết vấn đề thay vì che giấu nó. Nếu không, nó có thể dẫn đến các lỗi khác trong tương lai
Nếu bạn giấu nhẹm những thông báo cảnh báo này, bạn sẽ hạn chế khả năng phát hiện các vấn đề nghiêm trọng trong ứng dụng của mình
Ví dụ: điều gì sẽ xảy ra nếu cửa hàng trực tuyến của bạn gặp lỗi "chia cho một" khiến một số người dùng không thể thêm nhiều mặt hàng vào giỏ hàng của họ? . Hoặc có thể nó xảy ra sau khi họ giảm số lượng một mặt hàng trong giỏ hàng của họ
Dù bằng cách nào, điều gì đó tồi tệ đang xảy ra và bạn không biết về nó
Bạn không thể dựa vào người dùng cuối để báo cáo sự cố. Nhiều người trong số họ sẽ nghĩ rằng họ đang sử dụng trang web không đúng cách hoặc đơn giản là họ sẽ quên nó đi và tiếp tục. Người dùng Internet mất kiên nhẫn. Họ thường không dành thời gian để điền vào biểu mẫu liên hệ hoặc đính kèm ảnh chụp màn hình
Kết quả là, cách tiếp cận lười biếng này trong việc “nuốt chửng” tất cả các thông báo cảnh báo đã khiến cửa hàng trực tuyến của bạn bị giảm doanh thu