Kills WordPress execution and displays HTML page with an error message.
Description
This function complements the die() PHP function. The difference is that HTML will be displayed to the user. It is recommended to use this function only when the execution should not continue any further. It is not recommended to call this function very often, and try to handle as many errors as possible silently or more gracefully.
As a shorthand, the desired HTTP response code may be passed as an integer to the $title parameter (the default title would apply) or the $args parameter.
Parameters
$messagestring|WP_Erroroptional- Error message. If this is a WP_Error object, and not an Ajax or XML-RPC request, the error’s messages are used.
Default:
'' $titlestring|intoptional- Error title. If
$messageis aWP_Errorobject, error data with the key'title'may be used to specify the title.
If$titleis an integer, then it is treated as the response code.
Default:
'' $argsstring|array|intoptional- Arguments to control behavior. If
$argsis an integer, then it is treated as the response code.
responseintThe HTTP response code. Default 200 for Ajax requests, 500 otherwise.link_urlstringA URL to include a link to. Only works in combination with $link_text.
Default empty string.link_textstringA label for the link to include. Only works in combination with $link_url.
Default empty string.back_linkboolWhether to include a link to go back. Default false.text_directionstringThe text direction. This is only useful internally, when WordPress is still loading and the site’s locale is not set up yet. Accepts'rtl'and'ltr'.
Default is the value of is_rtl() .charsetstringCharacter set of the HTML output. Default'utf-8'.codestringError code to use. Default is'wp_die', or the main error code if $message is a WP_Error.exitboolWhether to exit the process after completion. Default true.
Default:
array()
Source
function wp_die( $message = '', $title = '', $args = array() ) {
global $wp_query;
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 $callback Callback function name.
*/
$callback = apply_filters( 'wp_die_ajax_handler', '_ajax_wp_die_handler' );
} elseif ( wp_is_json_request() ) {
/**
* Filters the callback for killing WordPress execution for JSON requests.
*
* @since 5.1.0
*
* @param callable $callback Callback function name.
*/
$callback = apply_filters( 'wp_die_json_handler', '_json_wp_die_handler' );
} elseif ( wp_is_serving_rest_request() && wp_is_jsonp_request() ) {
/**
* Filters the callback for killing WordPress execution for JSONP REST requests.
*
* @since 5.2.0
*
* @param callable $callback Callback function name.
*/
$callback = apply_filters( 'wp_die_jsonp_handler', '_jsonp_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 $callback Callback function name.
*/
$callback = apply_filters( 'wp_die_xmlrpc_handler', '_xmlrpc_wp_die_handler' );
} elseif ( wp_is_xml_request()
|| isset( $wp_query ) &&
( function_exists( 'is_feed' ) && is_feed()
|| function_exists( 'is_comment_feed' ) && is_comment_feed()
|| function_exists( 'is_trackback' ) && is_trackback() ) ) {
/**
* Filters the callback for killing WordPress execution for XML requests.
*
* @since 5.2.0
*
* @param callable $callback Callback function name.
*/
$callback = apply_filters( 'wp_die_xml_handler', '_xml_wp_die_handler' );
} else {
/**
* Filters the callback for killing WordPress execution for all non-Ajax, non-JSON, non-XML requests.
*
* @since 3.0.0
*
* @param callable $callback Callback function name.
*/
$callback = apply_filters( 'wp_die_handler', '_default_wp_die_handler' );
}
call_user_func( $callback, $message, $title, $args );
}
Hooks
- apply_filters( ‘wp_die_ajax_handler’,
callable $callback ) Filters the callback for killing WordPress execution for Ajax requests.
- apply_filters( ‘wp_die_handler’,
callable $callback ) Filters the callback for killing WordPress execution for all non-Ajax, non-JSON, non-XML requests.
- apply_filters( ‘wp_die_jsonp_handler’,
callable $callback ) Filters the callback for killing WordPress execution for JSONP REST requests.
- apply_filters( ‘wp_die_json_handler’,
callable $callback ) Filters the callback for killing WordPress execution for JSON requests.
- apply_filters( ‘wp_die_xmlrpc_handler’,
callable $callback ) Filters the callback for killing WordPress execution for XML-RPC requests.
- apply_filters( ‘wp_die_xml_handler’,
callable $callback ) Filters the callback for killing WordPress execution for XML requests.