I’m struggling a bit to get my head around how to create shortcodes with options for a theme i’m building.
The shortcode creates a container and I want a “style” parameter so the user could enter something like this:
[container style="white"]content[/container]
I have three styles: white, clear and color and each style should add the class style1, style2 and style 3 respectively to the container html. This is what I have so far in my php:
// Container
function container($atts, $content = null) {
extract( shortcode_atts( array(
'style' => 'style2',
), $atts ) );
$return_string = '<section class="wrapper special container {$style}">'. do_shortcode($content) .'</section>';
wp_reset_query();
return $return_string;
}
I just wanted to make a start by getting it to register 1 style but I can’t even get to that point yet, let alone the three different styles!
Currently this just outputs:
<section class="wrapper special container {$style}">[MY CONTENT]</section>
in the html – any help or advise would be great.
1] Try using a switch on the
$style
variable to echo out the corresponding$return_string
depending on it’s value.2] Pay special attention to the
default:
case, as it is what will be displayed if$style
is not set toclear
orwhite
. I set it to have no attribute, but you might want it to be different.3] You can add as many cases as you need for the shortcode. Whatever the value of
$style
is will determine which$return_string
is used.