There are no options to add class
as parameter in shortcode [audio]
. You need to use filter wp_audio_shortcode_class
to change default class wp-audio-shortcode
or add additional class. Here example code to filter it ( add into functions.php
theme files ).
add_filter( 'wp_audio_shortcode_class', 'wpse221201_audio_shortcode_class', 1, 1 );
function wpse221201_audio_shortcode_class( $class )
{
$class .= ' my-class'; /* additional class */
return $class;
}
For multiple shortcode [audio]
, you can use static $instance
to loop ( if you need to use global variable, take a look @iantsch answer ):
add_filter( 'wp_audio_shortcode_class', 'wpse221201_audio_shortcode_class', 1, 1 );
function wpse221201_audio_shortcode_class( $class )
{
static $instance = 0;
$instance++;
/* class name with increament number, change my-audio-class */
$class = sprintf( '%s my-audio-class-%d', $class, $instance );
return $class;
}
Here another option for next WordPress v4.5
, we hook shortcode_atts_{$shortcode}
and target specific shortcode.
add_filter( 'shortcode_atts_audio', 'wpse221201_shortcode_atts_audio', 1, 4 );
function wpse221201_shortcode_atts_audio( $out, $pairs, $atts, $shortcode )
{
//static $instance = 0;
//$instance++;
/* target parameter 'mp3' with its file
or add your own parameter ( $atts[whatever] ) and use it in conditional statement
*/
if ( isset( $out['mp3'] ) && isset( $out['class'] ) && 'source.mp3' == $out['mp3'] )
$out['class'] = sprintf( '%s my-class', $out['class'] );//additional class
return $out;
}