do_shortcode() WordPress Function

The do_shortcode() function enables Wordpress developers to run shortcodes within their themes and plugins. A shortcode is a small piece of code, enclosed in square brackets, that performs a certain function. Shortcodes can be used to insert images, videos, or other media into a post or page, or to create complex layouts. The do_shortcode() function can be used anywhere within a Wordpress theme or plugin. It accepts one parameter, the shortcode, and returns the output of the shortcode. Shortcodes are a powerful tool for Wordpress developers, and the do_shortcode() function makes it easy to use them within your themes and plugins.

do_shortcode( string $content, bool $ignore_html = false ) #

Search content for shortcodes and filter shortcodes through their hooks.


Description

If there are no shortcode tags defined, then the content will be returned without any filtering. This might cause issues when plugins are disabled but the shortcode will still show up in the post or content.


Top ↑

Parameters

$content

(string)(Required)Content to search for shortcodes.

$ignore_html

(bool)(Optional)When true, shortcodes inside HTML elements will be skipped.

Default value: false


Top ↑

Return

(string) Content with shortcodes filtered out.


Top ↑

More Information

If there are no shortcode tags defined, then the content will be returned without any filtering. This might cause issues if a plugin is disabled as its shortcode will still show up in the post or content.


Top ↑

Source

File: wp-includes/shortcodes.php

function do_shortcode( $content, $ignore_html = false ) {
	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 );
	$tagnames = array_intersect( array_keys( $shortcode_tags ), $matches[1] );

	if ( empty( $tagnames ) ) {
		return $content;
	}

	$content = do_shortcodes_in_html_tags( $content, $ignore_html, $tagnames );

	$pattern = get_shortcode_regex( $tagnames );
	$content = preg_replace_callback( "/$pattern/", 'do_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
VersionDescription
2.5.0Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by theĀ Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.