strip_shortcodes( string $content )

Remove all shortcode tags from the given content.


Description Description


Parameters Parameters

$content

(string) (Required) Content to remove shortcode tags.


Top ↑

Return Return

(string) Content without shortcode tags.


Top ↑

Source Source

File: wp-includes/shortcodes.php

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

Top ↑

Changelog Changelog

Changelog
Version Description
2.5.0 Introduced.


Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note 1 content
    Contributed by Codex

    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.

    /**
     * Remove shortcodes if we are on the home page
     *
     * @param string $content Post content.
     * @return string (Maybe) modified post content.
     */
    function wpdocs_remove_shortcode_from_index( $content ) {
    	if ( is_home() ) {
    		$content = strip_shortcodes( $content );
    	}
    	return $content;
    }
    add_filter( 'the_content', 'wpdocs_remove_shortcode_from_index' );
    

You must log in before being able to contribute a note or feedback.