没有可添加的选项class
作为短代码中的参数[audio]
. 您需要使用筛选器wp_audio_shortcode_class
更改默认类的步骤wp-audio-shortcode
或添加其他类。这里是过滤它的示例代码(添加到functions.php
主题文件)。
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;
}
对于多个短代码
[audio]
, 您可以使用
static $instance
循环(如果需要使用全局变量,请查看
@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;
}
这里是下一个选项
WordPress v4.5
, 我们钩住
shortcode_atts_{$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;
}