Как создавать логи в WordPress
Есть ли способ вести логи в WordPress, аналогично тому, как это делается в Magento?
Я разрабатываю собственный плагин, в котором добавил несколько функций с помощью хуков, и мне нужно выполнить отладку. Для этого необходимо иметь возможность записывать текст или данные в логи WordPress.
Если такая возможность существует, пожалуйста, расскажите о процедуре создания логов в WordPress.

Вы можете включить логирование в WordPress, добавив это в файл wp-config.php
:
// Включаем режим WP_DEBUG
define( 'WP_DEBUG', true );
// Включаем запись логов отладки в файл /wp-content/debug.log
define( 'WP_DEBUG_LOG', true );
Вы можете записывать в лог-файл с помощью функции error_log()
, предоставляемой PHP.
Следующий фрагмент кода представляет собой очень полезную обёртку для этой функции, которую можно добавить в ваш плагин:
if (!function_exists('write_log')) {
function write_log($log) {
if (true === WP_DEBUG) {
if (is_array($log) || is_object($log)) {
error_log(print_r($log, true));
} else {
error_log($log);
}
}
}
}
write_log('ЭТО НАЧАЛО МОЕЙ ПОЛЬЗОВАТЕЛЬСКОЙ ОТЛАДКИ');
// Можно логировать данные, включая объекты
write_log($любые_данные_для_логирования);
Если вы не можете найти файл debug.log
, попробуйте сгенерировать для него какие-либо данные, поскольку он не будет создан, если нет ошибок
. Также на некоторых хостингах может потребоваться проверить расположение лог-файла через php info.

Для удобного использования функции write_log я создал её в виде плагина https://github.com/manchumahara/cbxwpwritelog, если это поможет. Я использую её ежедневно в целях разработки.

WordPress умеет вести логи! Ознакомьтесь со страницей отладки WordPress здесь https://codex.wordpress.org/Debugging_in_WordPress
Лично я предпочитаю настраивать свои локальные сайты для разработки так, чтобы ошибки записывались в файл отладки, а не выводились на экран.
Откройте ваш файл wp_config и прокрутите вниз до раздела, где определяется WP_DEBUG.
Вот как выглядит моя стандартная настройка:
define('WP_DEBUG', true); // Включить отладку. Оставьте так, если хотите выводить ошибки, предупреждения и уведомления на экран:
define( 'WP_DEBUG_LOG', true ); // Включить логирование
define( 'WP_DEBUG_DISPLAY', false ); // Отключить вывод ошибок, предупреждений и уведомлений на экран (что лично меня СИЛЬНО раздражает):
С такими настройками WordPress будет записывать ошибки, предупреждения и уведомления в файл debug.log
, расположенный в /wp-content/debug.log
Лог-файлы в продакшен-среде представляют угрозу безопасности, поэтому ЕСЛИ вы решили включить логирование на боевом сервере, рекомендуется настроить ваш .htaccess-файл для запрета доступа к лог-файлу (или использовать аналогичный плагин безопасности для его блокировки). Таким образом, вы сохраните логи, но не будете беспокоиться о том, что хакеры получат доступ к этой информации.

Могу ли я добавить любой пользовательский текст в него? Например, в цикле, просто чтобы подтвердить, какой вызывается. Я хочу ввести числа, такие как 1,2,3 и т.д. Как я могу это сделать?

Вы можете. Посмотрите ответ @david о том, как это сделать :) Вот хорошая статья на эту тему https://www.elegantthemes.com/blog/tips-tricks/using-the-wordpress-debug-log
