WordPress php error reporting

How to enable or disable PHP error reporting for WordPress

Enabling PHP warnings and error notices for WordPress

WordPress PHP error reporting, warnings and notices should be disabled by default. If for some reason you want to enable them for example, you need to debug your newly installed theme or plugin, then there are a few ways to achieve this.

Using a Plugin

The most user-friendly way is using a plugin like Easy Error Reporting. Once installed and activate you can set which user type will be able to see the error logging so you won’t scare away your regular visitors.

Editing wp-config.php

One more way is by directly editing the wp-config.php file of your WordPress installation. In there you should add the following lines:

Читайте также:  Spelling checker in python

// 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 );

This setup lets you log all errors, notices and warnings in a file under the name debug.log which will be saved under the wp-content directory.

How to disable WordPress PHP warnings and error notices

If for some reason your site frontend is filled with PHP related errors, warnings and notices which can be seen from your site visitors then you can hide them by setting the WP_DEBUG mode as false. If for some reasons this doesn’t work, for example, you’re using a cheaply shared hosting account, then replace that line of code inside your wp-config.php file with this one:

ini_set(‘display_errors’,’Off’);
ini_set(‘error_reporting’, E_ALL );
define(‘WP_DEBUG’, false);
define(‘WP_DEBUG_DISPLAY’, false);

Reader Interactions

Leave a Reply Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

© 2023 · WordPress Security Services · WP Republic!
This website is not affiliated with or sponsored by Automattic or the WordPress Open Source project

Источник

Настройка WordPress и PHP для вывода сообщений об ошибках

В предыдущей части мы создали WordPress-проект и приступили к редактированию кода. Теперь поговорим о том, как выявить и исправить ошибки в созданном коде.

Рабочий публичный сервер должен быть настроен так, чтобы сообщения об ошибках вообще не выводились — из соображений безопасности, да и просто из эстетических соображений. Вывод ошибок можно запретить на уровне сервера (в php.ini), а также на уровне скрипта (с помощью функций ini_set() и error_reporting()). Например, чтобы гарантировано подавить вывод ошибок на вашем WordPress-сайте в независимости от настроек сервера, в wp-config.php надо добавить:

define('WP_DEBUG', false); @ini_set('display_errors', 0);

Теперь в случае ошибки посетитель увидит страницу Internal Server Error.

При разработке же все наоборот — вывод ошибок очень важен и полезен. Поэтому на сервере, используемом для разработки, вывод ошибок обязательно включаем (php.ini : display_errors = 1). В Zend Server вывод ошибок включается через панель управления Server Setup -> Directives -> Error Handling and Logging -> display_errors поставить On. Там же устанавливаем значение директивы error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT (вывод всех ошибок и предупреждений, кроме уведомлений). E_NOTICE и E_STRICT — это некритичные уведомления о соблюдении стандартов кодирования, они не влияют на работоспособность кода. Подробнее об уровнях ошибок.

Теперь возвращаемся к wp-config.php. По умолчанию режим отладки отключен:

Но это не значит, что ошибки не выводятся.
На самом деле error_reporting = E_ALL & ~E_NOTICE & ~E_USER_NOTICE.

означает error_reporting = E_ALL (вывод вообще всех ошибок и уведомлений), также на экран будут выводиться ошибки SQL-запросов.

Итак, что в итоге?

Для вывода фатальных ошибок и предупреждений достаточно значения по умолчанию:

Если вывод ошибок отключен на уровне сервера, то его можно включить на уровне скрипта:

Когда нужен вывод ошибок SQL, и для устранения мелких погрешностей кода (вот здесь будут полезны уведомления), используем режим отладки:

Отключение вывода ошибок на экран, но при этом запись ошибок в лог-файл (wp-content/debug.log):

define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false); @ini_set('display_errors', 0);

Еще один момент, который стоит учитывать — некоторые WordPress-плагины могут без всякого предупреждения вмешаться в процесс вывода ошибок. Например известный плагин WP-SpamFree полностью подавляет вывод ошибок не смотря на значение константы WP_DEBUG. Явный симптом error_reporting(0) — белый экран, вместо сообщения об ошибке.

Явные ошибки — найти и устранить легче всего. В тексте ошибки обычно указывается имя файла и номер строки, где произошла ошибка. Другое дело, когда явных ошибок нет, но код работает не так как вы планировали. Вот здесь уже нужен отладчик (debugger). Читайте далее: Отладка кода WordPress-проетка с помощью Zend Debugger и Eclipse PDT.

Источник

How to Debug WordPress PHP Errors, Warnings & Enable (Disable) PHP error reporting

Are you getting PHP error on your WordPress site? Do you want to disable PHP error? Also, have any of below questions? Then you are at right place.

  • How to Turn Off PHP Errors in WordPress
  • How to hide PHP Warnings and Notices in WordPress
  • Debugging in WordPress
  • PHP Notices, Warnings and Errors on Your WordPress Site
  • Turn on WordPress Error Reporting
  • How to enable or disable PHP error reporting for WordPress

do you know, there are quite a few sites out there with PHP warning and errors enabled by default and debug logs are easily readable to all of their users.

You definitely want to disable PHP warning and error reporting at front end 🙂

Check these out live site errors:

PHP error on Live Site - Example 1

PHP error on Live Site - Example 3

These errors are scary . You can just search google with term crayon_formatter.class.php on line 36 and you will hundreds of site with this error. Again this is really bad. Ideally you shouldn’t show PHP warnings/errors to users.

How to disable these PHP Debug logs?

Just add below 2 lines to your wp-config.php file to disable warning appearing on live site.

define( 'WP_DEBUG', false ); define( 'WP_DEBUG_LOG', false );

How to enable these PHP Debug logs?

Just flip WP_DEBUG and WP_DEBUG_LOG to true to enable PHP warning at front end.

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

Once you modify wp-config.php file, save your changes and re-upload this to your server.

The errors will then get logged to the debug.log file within your /wp-content/ folder. If for some reason you don’t see this file, please create one.

Is there any plugin available to see PHP error logs in Admin Console and on live site?

Yes. I would recommend to use plugin Query Monitor .

WordPress Query Monitor Plugin to debug PHP issue

Plugin gives very detailed analysis on PHP errors with line level details. By that way, you can directly go to that page and fix an error.

Query Monitor - very detailed PHP error Information

I hope this tutorial helps you find and fix PHP errors very easily and fast.

If you liked this article, then please share it on social media. Have a question or suggestion? Please leave a comment to start the discussion. 👋

Suggested Articles.

Источник

WordPress. Как включить отображение отчета об ошибках

MonsterONE

Благодаря этому туториалу вы узнаете, как включить отображение отчета об ошибках в WordPress.

Если на сайте включен WP_DEBUG, все ошибки, уведомления и предупредительные сообщения PHP будут отображаться на сайте. Можно изменить настройки PHP по умолчанию таким образом, чтобы отображались только сообщения непосредственно об ошибках.

  1. WP_DEBUG WP_DEBUG — это константа PHP, что используется для запуска режима «отладки»(«debug») в WordPress. По умолчанию эта настройка установлена со значением «false», и обычно меняется на «true» в файле wp-config.php: how to enable error reporting.4
  2. Для того, чтобы включить отображение отчета об ошибках в WordPress, пожалуйста, войдите в свою панель управления на хостинге, найдите Менеджер файлов ( File Manager ), и откройте папку вашего сайта WordPress: how to enable error reporting.1
  3. Найдите и откройте файл wp-config.php: how to enable error reporting.2
  4. WP_DEBUG должен быть указан со значением true:

how to enable error reporting.3

WP_DEBUG_LOG — это сопровождающая настройка для WP_DEBUG, с помощью которой записи об ошибках можно сохранять в файле debug.log, что расположен в папке /wp-content/. Это полезно, если вы хотите просмотреть все уведомления позже или нужно просмотреть уведомления, сгенерированные, но не отображенные на сайте (к примеру, уведомления, сгенерированные во время запроса AJAX или запуска wp- cron ). Пожалуйста, обратите внимание, что файл debug.log не будет создан в случае отсутствия ошибок или уведомлений. Также, пожалуйста, проверьте разрешения для папок и файлов (644 — для файлов; 755 — для папок).

define('WP_DEBUG_DISPLAY', false);

Вы также можете просмотреть детальный видео-туториал:

Шаблоны для Вордпресс

Эта запись была размещена в WordPress туториалы и помечена как error, reporting, WordPress. Добавьте в закладки постоянную ссылку.

Источник

Как выключить и включить вывод ошибок в WordPress?

Скриншот ниже выглядит страшновато 🙂 , но именно с таким текстом вы случайно можете встретиться на страницах вашего сайта, если определенный плагин или иной код вызывает ошибки PHP. С другой стороны, именно этот код будет вам полезен в процессе поиска проблемы.

Типы PHP ошибок (не только для WordPress)

В первую очередь, следует понимать, что ошибки бывают разной степени “критичности”. Чаще всего вы встретите так называемые предупреждения “Warnings“, а также фатальные ошибки “Fatal errors“.

Первый тип в большинстве случаев не ломает ваш сайт, а только досаждает выводом определенных данных об ошибке где-то на страницах сайта или админ-панели WordPress. В зависимости от настроек вашего хостинга, такие сообщения могут по умолчанию выводиться или скрываться.

Во втором случае вы можете просто видеть белый экран вместо какой-то из страниц.

Как отключить вывод ошибок

Следующий код выключает вывод ошибок на страницах сайта. Его необходимо добавить в файл wp-config.php, находящийся в корне вашего сайта. Проще всего найти в этом файле текст define ( ‘WP_DEBUG «, false); и вместо него добавить:

error_reporting(0); // выключаем вывод информации об ошибках ini_set('display_errors', 0); // выключаем вывод информации об ошибках на экран define('WP_DEBUG', false); define('WP_DEBUG_DISPLAY', false); 

Не забывайте перед редактированием файлов PHP на сайте делать их резервную копию, это позволит быструю вернуться на шаг назад в случае каких-то механических ошибок.

Как включить вывод ошибок?

Следующий код наоборот включает вывод ошибок, что позволит вам или вашему вебмастеру скорее и проще узнать о причинах проблем на сайте, очень помогает, когда вместо страницы сайта показывается просто белая страница без данных:

error_reporting(E_ALL); // включаем вывод ошибок ini_set('display_errors', 1); // включаем вывод ошибок на экран define('WP_DEBUG', true); define('WP_DEBUG_DISPLAY', true);

Разместить этот код необходимо один в один как и предыдущий в файле wp-config.php

Плагины для поиска ошибок в WordPress (дебаг и профилирование)

Для WordPress есть несколько замечательных плагинов, которые позволят более глубоко погрузиться в процесс поиска ошибок и их причин. Вот несколько популярных из них:

  • Query Monitor – выводит в футере довольно много полезной информации, в частности о запросах, выполненных во время генерации текущей страницы. Среди всей выводимой информации приведены время генерации страницы, сколько было SQL запросов, какие именно и время их выполнения, сколько памяти потрачено, какие хуки использованы и другое.
  • Debug Bar – набор плагинов для дебага. Это основной плагин, к которому можно подключать дополнительные, расширяющие функциональность основного.
  • Log Deprecated Notices – записывает информацию о наличии устаревших функций в WordPress или их параметров, работа плагина не зависит от значений константы WP_DEBUG, то есть работает всегда.
  • WordPress mu-plugin for debugging – альтернативный плагин на базе библиотеки Kint.
  • Clockwork для WordPress – интересный плагин для отладки через консоль браузеров Google Chrome или Firefox, есть возможность отладки AJAX-запросов.

Источник

Оцените статью