Tutorial : Combining multiple shortcodes in wordpress

You can create shortcodes for any function in wordpress. It’s so easy to create one and also so functional. In this post i will show you how to use a shortcode in another shortcode.

Basically shortcodes are working in this way:

[shortcode {arguments}] -> shortcode_function({arguments}) -> return output

Let’s say you have a download_link shortcode from your download manager. Skeleton for this shortcode would be:

function download_link_shortcode($atts = ''){
  // Extract shortcode attributes
  // Do stuff here and return link
  return $link;
} add_shortcode('download_link', 'download_link_shortcode');

Let’s combine this shortcode with adsense widget shortcode. So we can easily output a download link with adsense below it.

Here is the skeleton for the shortcode.

>function download_with_adsense($atts = ''){
} add_shortcode('download_with_ads', 'download_with_adsense');

Now let’s fill in our shortcode function:

function download_with_adsense($atts = ''){
	// Extract attributes here so we can use them as variables
	extract(shortcode_atts( array(
		'id' => ''
		'ad_type' => 'half-banner',
		'ad_content' => 'image',
		'ad_channel' => '12345678990'
	), $atts));
	$output = '<div class="wrap">';
	// Now let's run our shortcodes and get output to combine
	// Get the download link
	$output .= do_shortcode('[download_link id="'.$id.'"]');
	// Add adsense below the link
	$output .= do_shortcode('[[adsense type="'.$ad_type.'" content="'.$ad_content.'" channel="'.$channel.'"]]'); 
	// Close wrapper div
	$output .= '</div>';
	// Shortcodes never echo but return output.
	return $output;

Now when ever we need a download link with adsense we can use this simple shortcode:

[download_with_ads id="3" ad_type="banner"]

Can you see how much time it saves?!
PHP + WordPress is amazing really :)

Powered by WordPress and Shailan