wpseek.com
A WordPress-centric search engine for devs and theme authors



wp_kses › WordPress Function

Since1.0.0
Deprecatedn/a
› wp_kses ( $content, $allowed_html, $allowed_protocols = array() )
Parameters: (3)
  • (string) $content Text content to filter.
    Required: Yes
  • (array[]|string) $allowed_html An array of allowed HTML elements and attributes, or a context name such as 'post'. \wp_kses_allowed_html for the list of accepted context names.
    Required: Yes
  • (string[]) $allowed_protocols Optional. Array of allowed URL protocols. Defaults to the result of wp_allowed_protocols().
    Required: No
    Default: array()
See:
Returns:
  • (string) Filtered content containing only the allowed HTML.
Defined at:
Codex:
Change Log:
  • 7.2.0

Filters text content and strips out disallowed HTML.

This function makes sure that only the allowed HTML element names, attribute names, attribute values, and HTML entities will occur in the given text string. This function expects unslashed data.


Source

function wp_kses( $content, $allowed_html, $allowed_protocols = array() ) {
	global $wp_kses_operating_mode;

	/**
	 * Filters whether to rely on the legacy parsing inside `wp_kses()`.
	 *
	 * @since 7.2.0
	 *
	 * @param bool $force_legacy_parser Whether to force using the legacy parser
	 *                                  instead of relying on the HTML API.
	 */
	if ( ! apply_filters( 'wp_kses_force_legacy_parser', true ) ) {
		return wp_sanitize_html_kses( (string) $content, $allowed_html, $allowed_protocols );
	}

	if ( empty( $allowed_protocols ) ) {
		$allowed_protocols = wp_allowed_protocols();
	}

	$content = wp_kses_no_null( $content, array( 'slash_zero' => 'keep' ) );
	$content = wp_kses_normalize_entities( $content );

	// Ensure that the legacy pre-kses filters run by setting the operating mode appropriately.
	try {
		$previous_kses_mode     = $wp_kses_operating_mode;
		$wp_kses_operating_mode = 'legacy';
		$content                = wp_kses_hook( $content, $allowed_html, $allowed_protocols );
	} finally {
		$wp_kses_operating_mode = $previous_kses_mode;
	}

	return wp_kses_split( $content, $allowed_html, $allowed_protocols );
}