仅在特定POST类型中显示音频播放器

时间:2021-02-04 作者:Cinnia Entertainment

我有一个自动播放音频的代码,我在这个网站上找到了它,它可以正常工作。问题是它会自动在站点范围内播放。有没有办法只对特定的帖子类型启用自动播放?代码如下所示。

add_filter( \'the_content\', \'wpse_67108_autplay_music\' );

function wpse_67108_autplay_music( $content )
{
    if ( ! is_singular() )
    {
        return $content;
    }

    $audio_files = get_children(
        array (
            \'post_parent\'    => get_the_ID(),
            \'post_status\'    => \'inherit\',
            \'post_type\'      => \'attachment\',
            \'post_mime_type\' => \'audio\'
        )
    );

    $audio = \'\';

    if ( $audio_files )
    {
        $id   = array_pop( array_keys( $audio_files ) );
        $url  = wp_get_attachment_url( $id );
        // add a \'controls\' attribute to enable controls
        $audio = "<audio src=\'$url\' controls autoplay loop></audio>";
    }

    return $audio . $content;
}

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

这是未经测试的,但在我看来,您可以简单地替换:

$audio = "<audio src=\'$url\' controls autoplay loop></audio>";
使用

$autoplay = is_singular( \'your_post_type\' ) ? \'autoplay\' : \'\';
$audio = "<audio src=\'$url\' controls $autoplay loop></audio>";
一、 e.我们使用$autoplay 变量来存储autoplay 属性,并且如果当前页面是文章类型的单个页面(your_post_type), 然后我们将变量值设置为autoplay.

但是如果你想add/enable 音频播放器仅在自定义帖子类型页面上显示,然后只需更改is_singular() 在您的代码中is_singular( \'your_post_type\' ). 类似于:

function wpse_67108_autplay_music( $content )
{
    if ( ! is_singular( \'your_post_type\' ) )
    {
        return $content;
    }

    // ... the rest of your code here.
}

相关推荐

Background audio player

有很多音频/音乐播放器是可湿性粉剂插件或与可湿性粉剂一起使用,但我看不出它们完全符合我的要求。我希望能够在网站加载时自动播放音频文件,作为一种背景音乐,只需控制一个“关闭”按钮-无播放/暂停,无曲目信息等(我强烈反对这种在线Muzak,但我的客户坚持。)有什么好办法吗?