Get multiple shortcode attribute values

I’m trying to get several values from a shortcode. I tried several things without success.

The shortcode looks like this:

[myshortcode metakey="<field_key:key1, title:Title 1><field_key:key2, title:Title 2><field_key:key3, title:Title 3> ]

How would I get the field_key values? So in this case key1, key2 and key3?

1 Answer
1

Don’t try to shove everything into a single attribute, or a single shortcode even. The string parsing you have to do will get more and more complicated. Try this:

function myshortcode_cb( $atts ) {
  $atts = shortcode_atts( 
    array(
      'cat' => '',
      'title' => ''
    ), 
    $atts
  );
  //   var_dump($atts); // debug
  return "{$atts['cat']} :: {$atts['title']}";
}
add_shortcode('myshortcode','myshortcode_cb');

With this:

[myshortcode cat="key1" title="Title 1" /]

And create a shortcode for each case.

Leave a Comment