WP_DIE() │ WP 2.0.4
Функция WP_DIE()
завершает выполнение WordPress и отображает указанное HTML-сообщение.
Эта функция является дополнением к встроенной функции PHP die()
. Главное отличие в том, что пользователю будет показано HTML-сообщение. Рекомендуется использовать эту функцию только в тех случаях, когда выполнение скрипта должно быть прекращено. Часто вызывать эту функцию не стоит — постарайтесь обрабатывать ошибки более плавно и без лишнего шума.
Использование
В качестве сокращения можно передать нужный код ответа HTTP как число в параметр $title
(будет применено заглавное сообщение по умолчанию) или в параметр $args
.
Применение функции
wp_die( $message, $title, $args );
Параметры:
$message
(string | WP_Error) — Сообщение об ошибке. Если это объект типаWP_Error
и не запрос Ajax или XML-RPC, будут использованы сообщения об ошибках.$title
(string | int) — Заголовок ошибки. Если$message
— это объектWP_Error
, данные ошибки с ключомtitle
могут быть использованы для задания заголовка. Если$title
— это число, то оно интерпретируется как код ответа.$args
(string | array | int) — Аргументы для управления поведением. Если$args
— это число, то оно интерпр��тируется как код ответа.
По умолчанию:
$message
: пустая строка$title
: пустая строка$args
: пустой массив
Примеры параметров $args
:
response
(int) — Код ответа HTTP. По умолчанию: 200 для запросов Ajax, 500 для всех остальных.link_url
(string) — URL для включения ссылки. Работает только в сочетании с параметромlink_text
.link_text
(string) — Текст для ссылки. Работает только в сочетании с параметромlink_url
.back_link
(true | false) — Нужно ли включать ссылку для возврата назад.text_direction
(string) — Направление текста. Используется только внутренне, когда WordPress всё ещё загружается, и локализация сайта ещё не настроена. Принимает 'rtl' и 'ltr'.charset
(string) — Кодировка для HTML-вывода. По умолчанию: 'utf-8'.code
(string) — Код ошибки для использования. По умолчанию: 'wp_die' или основной код ошибки, если$message
— этоWP_Error
.exit
(true | false) — Нужно ли завершать процесс после завершения выполнения. По умолчанию: true.
Примеры использования
1. Показать значение $post
add_filter( 'body_class', 'add_body_class_cb' ); function add_body_class_cb( $classes ) { global $post; wp_die( '
' . var_export( $post, true ) . '' );
}2. Изменение стиля блока
wp_die
Чтобы изменить дизайн блока
wp_die
, используйте хукwp_die_handler
.add_filter( 'wp_die_handler', function(){ return 'my_wp_die_handler'; }); function my_wp_die_handler( $message, $title = '', $args = array() ){ $defaults = array( 'response' => 500 ); $r = wp_parse_args($args, $defaults); $have_gettext = function_exists('__'); if ( function_exists( 'is_wp_error' ) && is_wp_error( $message ) ) { if ( empty( $title ) ) { $error_data = $message->get_error_data(); if ( is_array( $error_data ) && isset( $error_data['title'] ) ) $title = $error_data['title']; } $errors = $message->get_error_messages(); switch ( count( $errors ) ) { case 0 : $message = ''; break; case 1 : $message = "
{$errors[0]}
"; break; default : $message = ""; break; } } elseif ( is_string( $message ) ) { $message = "
- " . join( "
- ", $errors ) . "
$message
"; } if ( isset( $r['back_link'] ) && $r['back_link'] ) { $back_text = $have_gettext? __('« Назад') : '« Назад'; $message .= ""; } if ( ! did_action( 'admin_head' ) ) { if ( !headers_sent() ) { status_header( $r['response'] ); nocache_headers(); header( 'Content-Type: text/html; charset=utf-8' ); } if ( empty($title) ) $title = $have_gettext ? __('WordPress › Ошибка') : 'WordPress › Ошибка'; $text_direction = 'ltr'; if ( isset($r['text_direction']) && 'rtl' == $r['text_direction'] ) $text_direction = 'rtl'; elseif ( function_exists( 'is_rtl' ) && is_rtl() ) $text_direction = 'rtl'; ?> >Примечания
- Глобальная переменная.
WP_Query
.$wp_query
— это объект запроса WordPress.
Изменения
- С версии 2.0.4: Функция была введена.
- С версии 4.1.0: Параметры
$title
и$args
были изменены, теперь они могут принимать целое число как код ответа. - С версии 5.1.0: Добавлены параметры
$link_url
,$link_text
, и$exit
. - С версии 5.3.0: Добавлен параметр
$charset
. - С версии 5.5.0: Параметр
$text_direction
имеет приоритет надget_language_attributes()
в стандартном обработчике.
Теперь вы знаете, как использовать функцию wp_die()
в WordPress для обработки ошибок и завершения выполнения приложения! Если у вас есть вопросы, не стесняйтесь их задавать.