wp_strip_all_tags( string $text, bool $remove_breaks = false ): string
Properly strips all HTML tags including script and style
Contents
Description
This differs from strip_tags() because it removes the contents of the <script>
and <style>
tags. E.g. strip_tags( '<script>something</script>' )
will return ‘something’. wp_strip_all_tags will return ”
Parameters
-
$text
string Required -
String containing HTML tags
-
$remove_breaks
bool Optional -
Whether to remove left over line breaks and white space chars
Default:
false
Return
string The processed string.
More Information
wp_strip_all_tags() is added to the following filters by default (see wp-includes/default-filters.php
):
- pre_comment_author_url
- pre_user_url
- pre_link_url
- pre_link_image
- pre_link_rss
- pre_post_guid
It is also applied to these filters by default when on the administration side of the site:
- user_url
- link_url
- link_image
- link_rss
- comment_url
- post_guid
Source
File: wp-includes/formatting.php
.
View all references
function wp_strip_all_tags( $text, $remove_breaks = false ) {
if ( is_null( $text ) ) {
return '';
}
if ( ! is_scalar( $text ) ) {
/*
* To maintain consistency with pre-PHP 8 error levels,
* trigger_error() is used to trigger an E_USER_WARNING,
* rather than _doing_it_wrong(), which triggers an E_USER_NOTICE.
*/
trigger_error(
sprintf(
/* translators: 1: The function name, 2: The argument number, 3: The argument name, 4: The expected type, 5: The provided type. */
__( 'Warning: %1$s expects parameter %2$s (%3$s) to be a %4$s, %5$s given.' ),
__FUNCTION__,
'#1',
'$text',
'string',
gettype( $text )
),
E_USER_WARNING
);
return '';
}
$text = preg_replace( '@<(script|style)[^>]*?>.*?</\\1>@si', '', $text );
$text = strip_tags( $text );
if ( $remove_breaks ) {
$text = preg_replace( '/[\r\n\t ]+/', ' ', $text );
}
return trim( $text );
}
Changelog
Version | Description |
---|---|
2.9.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.
Example