wp_kses_xml_named_entities

The timeline below displays how wordpress function wp_kses_xml_named_entities has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.1

/**
 * Callback for `wp_kses_normalize_entities()` regular expression.
 *
 * This function only accepts valid named entity references, which are finite,
 * case-sensitive, and highly scrutinized by XML validators.  HTML named entity
 * references are converted to their code points.
 *
 * @since 5.5.0
 *
 * @global array $allowedentitynames
 * @global array $allowedxmlentitynames
 *
 * @param array $matches preg_replace_callback() matches array.
 * @return string Correctly encoded entity.
 */
function wp_kses_xml_named_entities($matches)
{
    global $allowedentitynames, $allowedxmlentitynames;
    if (empty($matches[1])) {
        return '';
    }
    $i = $matches[1];
    if (in_array($i, $allowedxmlentitynames, true)) {
        return "&{$i};";
    } elseif (in_array($i, $allowedentitynames, true)) {
        return html_entity_decode("&{$i};", ENT_HTML5);
    }
    return "&{$i};";
}

WordPress Version: 5.9

/**
 * Callback for `wp_kses_normalize_entities()` regular expression.
 *
 * This function only accepts valid named entity references, which are finite,
 * case-sensitive, and highly scrutinized by XML validators.  HTML named entity
 * references are converted to their code points.
 *
 * @since 5.5.0
 *
 * @global array $allowedentitynames
 * @global array $allowedxmlnamedentities
 *
 * @param array $matches preg_replace_callback() matches array.
 * @return string Correctly encoded entity.
 */
function wp_kses_xml_named_entities($matches)
{
    global $allowedentitynames, $allowedxmlentitynames;
    if (empty($matches[1])) {
        return '';
    }
    $i = $matches[1];
    if (in_array($i, $allowedxmlentitynames, true)) {
        return "&{$i};";
    } elseif (in_array($i, $allowedentitynames, true)) {
        return html_entity_decode("&{$i};", ENT_HTML5);
    }
    return "&{$i};";
}

WordPress Version: 5.5

/**
 * Callback for `wp_kses_normalize_entities()` regular expression.
 *
 * This function only accepts valid named entity references, which are finite,
 * case-sensitive, and highly scrutinized by XML validators.  HTML named entity
 * references are converted to their code points.
 *
 * @since 5.5.0
 *
 * @global array $allowedentitynames
 * @global array $allowedxmlnamedentities
 *
 * @param array $matches preg_replace_callback() matches array.
 * @return string Correctly encoded entity.
 */
function wp_kses_xml_named_entities($matches)
{
    global $allowedentitynames, $allowedxmlnamedentities;
    if (empty($matches[1])) {
        return '';
    }
    $i = $matches[1];
    if (in_array($i, $allowedxmlnamedentities, true)) {
        return "&{$i};";
    } elseif (in_array($i, $allowedentitynames, true)) {
        return html_entity_decode("&{$i};", ENT_HTML5);
    }
    return "&{$i};";
}