A WordPress-centric search engine for devs and theme authors

wp_kses ›

wp_kses ( $string, $allowed_html, $allowed_protocols = array() )
Parameters: (3)
  • (string) $string Content to filter through kses
    Required: Yes
  • (array) $allowed_html List of allowed HTML elements
    Required: Yes
  • (array) $allowed_protocols Optional. Allowed protocol in links.
    Required: No
    Default: array()
  • (string) Filtered content with only allowed HTML elements
Defined at:

Filters content and keeps only allowable HTML elements.

This function makes sure that only the allowed HTML element names, attribute names and attribute values plus only sane HTML entities will occur in $string. You have to remove any slashes from PHP's magic quotes before you call this function.

The default allowed protocols are 'http', 'https', 'ftp', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet, 'mms', 'rtsp' and 'svn'. This covers all common link protocols, except for 'javascript' which should not be allowed for untrusted users.


function wp_kses( $string, $allowed_html, $allowed_protocols = array() ) {
	if ( empty( $allowed_protocols ) ) {
		$allowed_protocols = wp_allowed_protocols();
	$string = wp_kses_no_null( $string, array( 'slash_zero' => 'keep' ) );
	$string = wp_kses_normalize_entities( $string );
	$string = wp_kses_hook( $string, $allowed_html, $allowed_protocols ); // WP changed the order of these funcs and added args to wp_kses_hook
	return wp_kses_split( $string, $allowed_html, $allowed_protocols );