获取发布播放列表,如GET_POST_QUALUILE()

时间:2017-07-19 作者:Ralphonz

是否有类似的功能get_post_gallery() 是否会检索帖子播放列表?如果没有,谁能建议从帖子中获取播放列表(音频或视频)的最佳方式?

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

我们可以看看get_post_galleries() 了解如何处理播放列表而不是库。

以下是基于核心功能的未经测试的修改:

function wpse_get_post_playlists( $post, $html = true ) {
    if ( ! $post = get_post( $post ) )
        return array();

    if ( ! has_shortcode( $post->post_content, \'playlist\' ) )
        return array();

    $playlists = array();
    if ( preg_match_all( \'/\' . get_shortcode_regex() . \'/s\', $post->post_content, $matches, PREG_SET_ORDER ) ) {
        foreach ( $matches as $shortcode ) {
            if ( \'playlist\' === $shortcode[2] ) {
                $ids = array();

                $shortcode_attrs = shortcode_parse_atts( $shortcode[3] );
                if ( ! is_array( $shortcode_attrs ) ) {
                    $shortcode_attrs = array();
                }

                // Specify the post id of the playlist we\'re viewing if the shortcode doesn\'t reference another post already.
                if ( ! isset( $shortcode_attrs[\'id\'] ) ) {
                    $shortcode[3] .= \' id="\' . intval( $post->ID ) . \'"\';
                }

                $playlist = do_shortcode_tag( $shortcode );
                if ( $html ) {
                    $playlists[] = $playlist;
                } else {
                    preg_match_all( \'#ids=([\\\'"])(.+?)\\1#is\', $playlist, $ids, PREG_SET_ORDER );
                    if ( ! empty( $ids ) ) {
                        foreach ( $ids as $id ) {
                            $ids[] = $id[2];
                        }
                    }

                    $playlists[] = array_merge(
                        $shortcode_attrs,
                        array(
                            \'ids\' => array_values( array_unique( $ids ) )
                        )
                    );
                }
            }
        }
    }
    return $playlists;
}

结束

相关推荐

如何使用JWPlayerPlayListid自定义读取其PlayList项?

在带有JW Player(v5)的Wordpress(3.8.1)和JW插件(v2.1.2)中,我需要读取JWPlayer Plugin.通常情况下JWPlayer Plugin 工作原理如下,通过短代码:[jwplayer playlistid=\"1234\"] 。。然后aVideo Player 将与其中的播放列表一起呈现在页面上。我想做什么(定制)那么现在我该怎么做呢。。if i want to know (or pull out) the items inside a Playlist