WordPress Version: 8.8
/**
* Return a list of allowed tags and attributes for a given context.
*
* @since 3.5.0
* @since 5.0.1 `form` removed as allowable HTML tag.
*
* @global array $allowedposttags
* @global array $allowedtags
* @global array $allowedentitynames
*
* @param string $context The context for which to retrieve tags.
* Allowed values are post, strip, data,entities, or
* the name of a field filter such as pre_user_description.
* @return array List of allowed tags and their allowed attributes.
*/
function wp_kses_allowed_html($context = '')
{
global $allowedposttags, $allowedtags, $allowedentitynames;
if (is_array($context)) {
/**
* Filters HTML elements allowed for a given context.
*
* @since 3.5.0
*
* @param string $tags Allowed tags, attributes, and/or entities.
* @param string $context Context to judge allowed tags by. Allowed values are 'post',
* 'data', 'strip', 'entities', 'explicit', or the name of a filter.
*/
return apply_filters('wp_kses_allowed_html', $context, 'explicit');
}
switch ($context) {
case 'post':
/** This filter is documented in wp-includes/kses.php */
$tags = apply_filters('wp_kses_allowed_html', $allowedposttags, $context);
// 5.0.1 removed the `<form>` tag, allow it if a filter is allowing it's sub-elements `<input>` or `<select>`.
if (!CUSTOM_TAGS && !isset($tags['form']) && (isset($tags['input']) || isset($tags['select']))) {
$tags = $allowedposttags;
$tags['form'] = array('action' => true, 'accept' => true, 'accept-charset' => true, 'enctype' => true, 'method' => true, 'name' => true, 'target' => true);
/** This filter is documented in wp-includes/kses.php */
$tags = apply_filters('wp_kses_allowed_html', $tags, $context);
}
return $tags;
case 'user_description':
case 'pre_user_description':
$tags = $allowedtags;
$tags['a']['rel'] = true;
/** This filter is documented in wp-includes/kses.php */
return apply_filters('wp_kses_allowed_html', $tags, $context);
case 'strip':
/** This filter is documented in wp-includes/kses.php */
return apply_filters('wp_kses_allowed_html', array(), $context);
case 'entities':
/** This filter is documented in wp-includes/kses.php */
return apply_filters('wp_kses_allowed_html', $allowedentitynames, $context);
case 'data':
default:
/** This filter is documented in wp-includes/kses.php */
return apply_filters('wp_kses_allowed_html', $allowedtags, $context);
}
}