我想你说的是嵌入audio 文件,如:
[embed]http://s.w.org/images/core/3.9/AintMisbehavin.mp3[/embed]
音频嵌入处理程序在中注册
wp_maybe_load_embeds()
并通过
wp_embed_handler_audio
滤器
所以在WP_Embed::shortcode()
这将生成:
[audio src="http://s.w.org/images/core/3.9/AintMisbehavin.mp3" /]
所以一些
methods mentioned here 对于
[audio]
短代码应该可以工作。
因为我们正在使用[embed]
shortcode,我们还可以添加自己的包装器来支持width参数:
add_filter( \'wp_embed_handler_audio\', function( $html, $attr, $url, $rawattr )
{
if( isset( $rawattr[\'width\'] ) )
{
$html = sprintf(
\'<div class="wpse_audio_embed_wrapper%s" style="width:%dpx">%s</div>\',
$class = 1 * $rawattr[\'width\'] < 120 ? \' audio-button-only\' : \'\',
$rawattr[\'width\'],
$html
);
}
return $html;
}, 10, 4 );
这里我们使用
$rawattr
因为我们只想检查用户输入。
如果宽度小于120,我们只将class音频按钮添加到包装器中。
然后,我们在mediaelement样式表之后注入内联样式,以隐藏相关部分,如持续时间和体积:
add_action( \'wp_enqueue_scripts\', function()
{
wp_add_inline_style(
\'mediaelement\',
\' .audio-button-only .mejs-volume-button,
.audio-button-only .mejs-duration,
.audio-button-only .mejs-currenttime,
.audio-button-only .mejs-horizontal-volume-slider
{ display: none !important; };\'
);
} );
这当然可以添加到相关的样式表中。
我们还可以扩展这种方法,以支持其他具有相应类的小型版本。
现在,我们可以在中使用宽度参数[embed]
对于音频文件:
[embed width="28"]http://s.w.org/images/core/3.9/AintMisbehavin.mp3[/embed]
Output:
播放按钮:
暂停按钮:
测试了216主题