wpseek.com
WordPress开发者和主题制作者的搜索引擎



wp_kses › WordPress Function

Since1.0.0
已弃用n/a
› wp_kses ( $content, $allowed_html, $allowed_protocols = array() )
参数: (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
    默认: array()
查看:
返回:
  • (string) Filtered content containing only the allowed HTML.
定义在:
文档:
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.


源码

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 );
}