Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

Function Reference/do shortcode


Searches content for shortcodes and filters shortcodes through their hooks.


<?php echo do_shortcode$content ?>


(string) (required) Content to search for shortcodes
Default: None

Return Values

Content with shortcodes replaced by the output from the shortcode's handler(s).


add_filter( 'the_content', 'do_shortcode', 11 ); // From shortcodes.php
// Use shortcode in a PHP file (outside the post editor).
echo do_shortcode( '[gallery]' );
// In case there is opening and closing shortcode.
echo do_shortcode( '[iscorrect]' . $text_to_be_wrapped_in_shortcode . '[/iscorrect]' );
// Use shortcodes in text widgets.
add_filter( 'widget_text', 'do_shortcode' );
// Use shortcodes in form like Landing Page Template.
echo do_shortcode( '[contact-form-7 id="91" title="quote"]' );
// Store the short code in a variable.
$var = do_shortcode( '[gallery]' );
echo $var;

There is an exception to the built in embed shortcode available with WordPress. In order to use this shortcode with do_shortcode, you can do the following:

$embedurl = 'http://yourembeddableurl.com';
if (!empty($embedurl)) {
       $var = apply_filters('the_content', "[embed]" . $embedurl . "[/embed]");
	echo $var;


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.

Change Log

Since: 2.5

Source File

do_shortcode() is located in wp-includes/shortcodes.php.


Shortcode API

See also index of Function Reference and index of Template Tags.