wp_trigger_error()
Создаёт кастомное сообщение об ошибке / предупреждении / уведомлении / устаревшем коде.
Функция работает только при включенном WP_DEBUG:
-
Если
WP_DEBUGвключён, функция создаёт PHP-ошибку черезtrigger_error(). - Если
WP_DEBUGотключен, PHP-ошибка не создаётся. Но срабатывает хук wp_trigger_error_always_run, поэтому через него можно самостоятельно записать сообщение в лог или обработать другим способом.
Работает на основе: wp_kses()
Возвращает
null.
void- ничего не возвращает.
Использование
wp_trigger_error( $function_name, $message, $error_level );
- $function_name(string) (обязательный)
- Название функции или метода, вызвавшего ошибку. Если указано, будет добавлено в начало сообщения в формате
function_name(): сообщение. - $message(string) (обязательный)
- Описание ошибки. Разрешены HTML-теги
<a href="">,<code>,<br>,<em>и<strong>, а также протоколыhttpиhttps. Остальные теги и протоколы удаляются функцией wp_kses(). - $error_level(int)
Уровень ошибки. Поддерживаются только константы семейства
E_USER:E_USER_NOTICE,E_USER_WARNING,E_USER_ERRORиE_USER_DEPRECATED.При уровне
E_USER_ERRORфункция выбрасывает исключение WP_Exception вместо вызова стандартной PHP-функцииtrigger_error().По умолчанию: E_USER_NOTICE
Примеры
#1 Вывести предупреждение о неправильной конфигурации
function my_plugin_validate_config( array $config ): void {
if ( empty( $config['api_key'] ) ) {
wp_trigger_error(
__FUNCTION__,
'The API key is not configured.',
E_USER_WARNING
);
}
}
#2 Перехватить сообщение независимо от WP_DEBUG
Хук wp_trigger_error_always_run срабатывает даже при отключённой отладке.
add_action( 'wp_trigger_error_always_run', 'my_plugin_log_wp_error', 10, 3 );
function my_plugin_log_wp_error( string $function_name, string $message, int $error_level ): void {
error_log(
sprintf(
'[%d] %s(): %s',
$error_level,
$function_name,
$message
)
);
}Список изменений
| С версии 6.4.0 | Введена. |