≡ Menu

WordPress Add A Shortcode Example

How do I create shortcodes that support attributes under wordpress CMS? How do I add shortcodes to my theme?

A shorcode is nothing but a simple set of function for creating macro code for use in post content. You need to add the shortcode to your functions.php file. In this example, you are going to create a shortcode called [foo] that will add a text “This is a test”.


You need to use functions.php a functions file, which resides in the theme subdirectory. This file acts like a plugin, and if it is present in the theme you are using, it is automatically loaded during WordPress initialization.

Create wordpress function

Edit functions.php, enter:
$ vi functions.php
Create a function called demo and append:

function foo_demo( $atts ){
 return "This is a demo.";
add_shortcode( 'foo', 'foo_demo' );

Save and close the file.

Test it

Edit or create a new post and add the following shortcode (in the post/page content):


Save/publish post. Click on preview button to see your shotcode in action.

How do I pass parameter or attribute to shortcode?

The Shortcode API makes it easy to create shortcodes that support parameters like this:

[movie genre="animation" rating="PG"]
[movie genre="comedy" rating="G"]

Add the following to your functions.php:

// shortcode [movie]
function show_movie( $atts ){
   // get attibutes and set defaults
                'gener' => 'Sci-Fi',
                'rating' => 'G',
                'date' => 0
       ), $atts));
    // Display info 
    $movie_details = '<div class="quickinfo"><ul>';
    $movie_details .= '<li>Genre: ' .$gener. '</li>';
    $movie_details .= '<li>Rating: ' .$rating. '</li>';
    $movie_details .= '<li>Release date: ' .$date. '</li>';
    $movie_details .= '</ul></div>';
    return $movie_details;
//add our shortcode movie
add_shortcode('movie', 'show_movie');
add_action( 'init', 'register_shortcodes');

You can now insert it as follows in your post:

[movie genre="Animation" rating="PG" date="2012"]

The output would be:

<div class="quickinfo"><ul><li>Genre: Sci-Fi</li><li>Rating: PG</li><li>Release date: 1920</li></ul></div>
Share this tutorial on:

Your support makes a big difference:
I have a small favor to ask. More people are reading the nixCraft. Many of you block advertising which is your right, and advertising revenues are not sufficient to cover my operating costs. So you can see why I need to ask for your help. The nixCraft, takes a lot of my time and hard work to produce. If you use nixCraft, who likes it, helps me with donations:
Become a Supporter →    Make a contribution via Paypal/Bitcoin →   

Don't Miss Any Linux and Unix Tips

Get nixCraft in your inbox. It's free:

{ 2 comments… add one }
  • Max June 27, 2013, 1:47 pm

    Useful guide! small spelling mistake :

  • Genre: ' .$gener. '
  • '; and 'gener' => 'Sci-Fi', gener => genre
  • Anirudh July 8, 2013, 4:40 pm

    Hi, I have been trying to find a good shortcode example from the last 48 hours and i wasn’t able to find a example with styling.

    Yes i am thick in coding, but i wasn’t able to stylize my shortcode.

    Thanks buddy !! promote your blog, people need you

Security: Are you a robot or human?

Leave a Comment

You can use these HTML tags and attributes: <strong> <em> <pre> <code> <a href="" title="">

   Tagged with: , , , , ,