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 для обработки ошибок и завершения выполнения приложения! Если у вас есть вопросы, не стесняйтесь их задавать.