WordPress at a glance

do_shortcode() WP 1.0

Search content for shortcodes and filter shortcodes through their hooks.

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.

  • Global. Array. $shortcode_tags List of shortcode tags and their callback hooks.

No Hooks.

Return

String. Content with shortcodes filtered out.

Usage

do_shortcode( $content, $ignore_html );
$content(string) (required)
Content to search for shortcodes.
$ignore_html(true/false)
When true, shortcodes inside HTML elements will be skipped.
Default: false

Code of do_shortcode: wp-includes/shortcodes.php VER 5.0

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

Related Functions

From category: Shortcodes

No comments
    Hello, !     Log In . Register