WordPress Version: 5.2
/**
* Processes arguments passed to wp_die() consistently for its handlers.
*
* @since 5.1.0
* @access private
*
* @param string $message Error message.
* @param string $title Optional. Error title. Default empty.
* @param string|array $args Optional. Arguments to control behavior. Default empty array.
* @return array List of processed $message string, $title string, and $args array.
*/
function _wp_die_process_input($message, $title = '', $args = array())
{
$defaults = array('response' => 0, 'code' => '', 'exit' => true, 'back_link' => false, 'link_url' => '', 'link_text' => '', 'text_direction' => '', 'additional_errors' => array());
$args = wp_parse_args($args, $defaults);
if (function_exists('is_wp_error') && is_wp_error($message)) {
if (!empty($message->errors)) {
$errors = array();
foreach ((array) $message->errors as $error_code => $error_messages) {
foreach ((array) $error_messages as $error_message) {
$errors[] = array('code' => $error_code, 'message' => $error_message, 'data' => $message->get_error_data($error_code));
}
}
$message = $errors[0]['message'];
if (empty($args['code'])) {
$args['code'] = $errors[0]['code'];
}
if (empty($args['response']) && is_array($errors[0]['data']) && !empty($errors[0]['data']['status'])) {
$args['response'] = $errors[0]['data']['status'];
}
if (empty($title) && is_array($errors[0]['data']) && !empty($errors[0]['data']['title'])) {
$title = $errors[0]['data']['title'];
}
unset($errors[0]);
$args['additional_errors'] = array_values($errors);
} else {
$message = '';
}
}
$have_gettext = function_exists('__');
// The $title and these specific $args must always have a non-empty value.
if (empty($args['code'])) {
$args['code'] = 'wp_die';
}
if (empty($args['response'])) {
$args['response'] = 500;
}
if (empty($title)) {
$title = $have_gettext ? __('WordPress › Error') : 'WordPress › Error';
}
if (empty($args['text_direction']) || !in_array($args['text_direction'], array('ltr', 'rtl'), true)) {
$args['text_direction'] = 'ltr';
if (function_exists('is_rtl') && is_rtl()) {
$args['text_direction'] = 'rtl';
}
}
return array($message, $title, $args);
}