I am learning about shortcodes. I've made 2 shortcodes that makes an accordion with bootstrap. One shortode (accordionGroup) creates the body that contains one or more shortcodes to make the items and it's content (accordionItem).
Now I need to create 2 different accordion. The problem is: I need a different id for each accordion and parse it to each item from that accordion. That is to make the accordion animation.
Here is the code
//This is the accordion container
function accordionGroup( $atts, $content = null )
{
extract(shortcode_atts(array(
'id_container' => '',
), $atts));
return "<div class='panel-group' id=".$id_container." role='tablist' aria-multiselectable='true'>".do_shortcode($content)."</div>";
}
add_shortcode( 'accordion-group', 'accordionGroup');
//This is the accordion item. It's need a reference from the accordion ID
function accordionItem( $atts, $content = null)
{
extract(shortcode_atts(array(
'titulo' => '',
'id' => '',
), $atts));
return "
<div class='panel panel-default'>
<div class='panel-heading' role='tab' id=".$id.">
<h4 class='panel-title'>
<a class='collapsed' role='button' data-toggle='collapse' data-parent='#the-reference-goes-here' href='#".$id."-collapse' aria-expanded='false' aria-controls=".$id."-collapse'>".$titulo."</a>
</h4>
</div>
<div id='".$id."-collapse' class='panel-collapse collapse' role='tabpanel' aria-labelledby=".$id.">
<div class='panel-body'>".$content."</div>
</div>
</div>";
}
add_shortcode( 'accordion-item', 'accordionItem');