如何更改WordPress嵌入式播放器大小或仅显示播放按钮

时间:2016-05-28 作者:vyperlook

尽管我试图改变嵌入播放器的宽度大小[embed] 看起来像这样player 使用[embed width="50" height="50"], 但无论我使用什么值,它都不会改变大小。WordPress说here 它应该起作用。

我还能做些什么来改变尺寸?我只想显示播放按钮,其他什么都不想显示。

我不想像本网站其他帖子中建议的那样更改内容宽度。我希望此更改只影响嵌入式播放器。

1 个回复
最合适的回答,由SO网友:birgire 整理而成

我想你说的是嵌入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:

播放按钮:

play button

暂停按钮:

pause button

测试了216主题

相关推荐

Embed Form In Header

我正在使用WordPress主题Twenty Ninteen,并试图借助Travelpayouts提供的旅游联盟API创建一个旅游博客。<script charset=\"utf-8\" src=\"//www.travelpayouts.com/widgets/920a6b8c6fc20070013d2e04f690210d.js?v=1649\" async></script> 这是要在页面/帖子上显示的表单代码,如果我在任何帖子上使用的页面代码工作正常,但我需要在标