WP_CLI::error()
Выводит сообщение об ошибке с префиксом "Error:" в STDERR и завершает процесс с кодом выхода 1.
Сообщение всегда пишется в STDERR, поэтому его можно корректно перенаправлять отдельно от обычного вывода.
По умолчанию команда завершится с кодом 1; если требуется продолжить выполнение, используйте второй аргумент false или WP_CLI::warning().
Конкретный код выхода можно передать вторым аргументом. Или можно использовать WP_CLI::halt() для управляемой остановки.
Для нефатальных ситуаций лучше использовать WP_CLI::warning().
Метод класса: WP_CLI{}
Хуков нет.
Возвращает
null. Ничего не возвращает; используется для логирования ошибки и опционального завершения процесса.
Использование
$result = WP_CLI::error( $message, $exit );
- $message(string|WP_Error|Exception|Throwable) (обязательный)
Сообщение об ошибке или объект ошибки, которое будет выведено в STDERR с префиксом "Error:".
Принимает строку, объект WP_Error или любой Throwable. Удобно для единообразного вывода фатальных ошибок в собственных WP‑CLI командах.
- $exit(true|false|int)
Позволяет управлять завершением:
true— завершить с кодом 1.false— не завершать, просто записать ошибку и продолжить выполнение.- число ≥ 1 — завершить с указанным кодом.
По умолчанию: true
Примеры
#1 Демо
Выводит ошибку и завершает выполнение, если не удалось сбросить объектный кеш.
if ( false === wp_cache_flush() ) {
WP_CLI::error( 'The object cache could not be flushed.' );
} #2 Явный код выхода
Завершает выполнение с заданным кодом (например, 3).
if ( $has_conflicts ) {
WP_CLI::error( 'Conflicts detected. Aborting.', 3 );
} #3 Передача WP_Error и продолжение выполнения
Логирует содержимое WP_Error и не прерывает процесс. Однако для нефатальных случаев предпочтительнее WP_CLI::warning().
$error = new WP_Error( 'invalid_data', 'Invalid payload received.' ); WP_CLI::error( $error, false ); // ... остальное код команды
Код WP_CLI::error() WP CLI::error WP-CLI 2.13.0-alpha
public static function error( $message, $exit = true ) {
if ( null !== self::$logger && ! isset( self::get_runner()->assoc_args['completions'] ) ) {
self::$logger->error( self::error_to_string( $message ) );
}
$return_code = false;
if ( true === $exit ) {
$return_code = 1;
} elseif ( is_int( $exit ) && $exit >= 1 ) {
$return_code = $exit;
}
if ( $return_code ) {
if ( self::$capture_exit ) {
throw new ExitException( '', $return_code );
}
exit( $return_code );
}
}