wp_die

Останавливает выполнение PHP скрипта и выводит отформатированное HTML сообщение.

Аналог базовой PHP функции die(). Разница в том, что wp_die() выводит отформатированную HTML страницу ошибки. Рекомендуется использовать эту функцию, когда нужно полностью прекратить работу PHP. Не рекомендуется пользоваться этой функцией часто – старайтесь не показывать ошибки пользователям.

Хуки из функции:
wp_die_ajax_handler
wp_die_handler
wp_die_xmlrpc_handler
Возвращает

Ничего не возвращает, а обрывает работу PHP.

Использование

wp_die( $message, $title, $args );
$message(смешанный)
Сообщение об ошибке или полный объект класса WP_Error.
По умолчанию: ”
$title(строка/массив/число/объект/логический)
Заголовок ошибки. Если используете объект WP_Error, то заголовок будет взят из $data[‘title’], этот параметр можно заранее изменить под себя.
По умолчанию: ”
$args(строка/массив)

Различные аргументы контролирующие поведение.
По умолчанию: нет

  • response (число)
    Код состояния HTTP. 500 – внутренняя ошибка сервера. Весь список смотрите тут.
    По умолчанию: 500

  • back_link (логический)
    Выводить или нет обратную ссылку на предыдущую страницу.
    По умолчанию: false

  • text_direction (строка)
    Направление текста: ltr (слева направо) или rtl (справа налево).
    По умолчанию: ‘ltr’

Примеры

#1. Используя функцию wp_die, посмотрим что находиться в глобальной переменной $post у нас в данный момент:

add_filter( 'body_class', 'add_body_class_cb' );
function add_body_class_cb( $classes ) {
	global $post;

	wp_die( '<pre>' . var_export( $post, true ) . '</pre>' );
}

Код из


wp-includes/functions.php

WP 4.7.2

<?php
function wp_die( $message = '', $title = '', $args = array() ) {

	if ( is_int( $args ) ) {
		$args = array( 'response' => $args );
	} elseif ( is_int( $title ) ) {
		$args  = array( 'response' => $title );
		$title = '';
	}

	if ( wp_doing_ajax() ) {
		/**
		 * Filters the callback for killing WordPress execution for Ajax requests.
		 *
		 * @since 3.4.0
		 *
		 * @param callable $function Callback function name.
		 */
		$function = apply_filters( 'wp_die_ajax_handler', '_ajax_wp_die_handler' );
	} elseif ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST ) {
		/**
		 * Filters the callback for killing WordPress execution for XML-RPC requests.
		 *
		 * @since 3.4.0
		 *
		 * @param callable $function Callback function name.
		 */
		$function = apply_filters( 'wp_die_xmlrpc_handler', '_xmlrpc_wp_die_handler' );
	} else {
		/**
		 * Filters the callback for killing WordPress execution for all non-Ajax, non-XML-RPC requests.
		 *
		 * @since 3.0.0
		 *
		 * @param callable $function Callback function name.
		 */
		$function = apply_filters( 'wp_die_handler', '_default_wp_die_handler' );
	}

	call_user_func( $function, $message, $title, $args );
}

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *