strip_shortcodes( string $content ): string
Removes all shortcode tags from the given content.
Parameters
-
$content
string Required -
Content to remove shortcode tags.
Return
string Content without shortcode tags.
Source
File: wp-includes/shortcodes.php
.
View all references
function strip_shortcodes( $content ) {
global $shortcode_tags;
if ( false === strpos( $content, '[' ) ) {
return $content;
}
if ( empty( $shortcode_tags ) || ! is_array( $shortcode_tags ) ) {
return $content;
}
// Find all registered tag names in $content.
preg_match_all( '@\[([^<>&/\[\]\x00-\x20=]++)@', $content, $matches );
$tags_to_remove = array_keys( $shortcode_tags );
/**
* Filters the list of shortcode tags to remove from the content.
*
* @since 4.7.0
*
* @param array $tags_to_remove Array of shortcode tags to remove.
* @param string $content Content shortcodes are being removed from.
*/
$tags_to_remove = apply_filters( 'strip_shortcodes_tagnames', $tags_to_remove, $content );
$tagnames = array_intersect( $tags_to_remove, $matches[1] );
if ( empty( $tagnames ) ) {
return $content;
}
$content = do_shortcodes_in_html_tags( $content, true, $tagnames );
$pattern = get_shortcode_regex( $tagnames );
$content = preg_replace_callback( "/$pattern/", 'strip_shortcode_tag', $content );
// Always restore square braces so we don't break things like <!--[if IE ]>.
$content = unescape_invalid_shortcodes( $content );
return $content;
}
Hooks
-
apply_filters( 'strip_shortcodes_tagnames',
array $tags_to_remove ,string $content ) -
Filters the list of shortcode tags to remove from the content.
Changelog
Version | Description |
---|---|
2.5.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.
It is worth to note that this function removes only those shortcodes which are registered at the moment of the processing of this function. If there are any “leftovers” shortcodes, like those which were added by some plugin but that plugin is not active anymore, this function WILL NOT strip them. It is possible to check which shortcodes may and will be stripped with the help of this filter
strip_shortcodes_tagnames
Strip shortcodes on home page but not on single or archive pages
When viewing posts ‘home’ page, strip all shortcodes, but on other pages, such as single.php, do not strip the shortcodes.