WordPress Version: 6.2
/**
* Kills WordPress execution and displays XML response with an error message.
*
* This is the handler for wp_die() when processing XML requests.
*
* @since 5.2.0
* @access private
*
* @param string $message Error message.
* @param string $title Optional. Error title. Default empty string.
* @param string|array $args Optional. Arguments to control behavior. Default empty array.
*/
function _xml_wp_die_handler($message, $title = '', $args = array())
{
list($message, $title, $parsed_args) = _wp_die_process_input($message, $title, $args);
$message = htmlspecialchars($message);
$title = htmlspecialchars($title);
$xml = <<<EOD
<error>
<code>{$parsed_args['code']}</code>
<title><![CDATA[{$title}]]></title>
<message><![CDATA[{$message}]]></message>
<data>
<status>{$parsed_args['response']}</status>
</data>
</error>
EOD;
if (!headers_sent()) {
header("Content-Type: text/xml; charset={$parsed_args['charset']}");
if (null !== $parsed_args['response']) {
status_header($parsed_args['response']);
}
nocache_headers();
}
echo $xml;
if ($parsed_args['exit']) {
die;
}
}