如何才能获得允许查询字符串参数的[VIDEO]快捷码?

时间:2016-03-13 作者:Derick Bailey

使用WordPress 4.4.2(撰写本文时的最新版本)

我正在尝试使用[视频]快捷码在我的网站上显示视频。如果我提供一个以filename.mp4 工作正常:

[video src="http://example.com/filename.mp4"]

但当我在URL的末尾添加querystring参数时,它拒绝显示视频播放器。相反,它只显示指向URL的链接:

[video src="http://example.com/filename.mp4?type=0"]

我试过使用mp4 属性,并生成相同的结果。

如何获取[视频]短代码以允许在srcmp4 属性?

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

你有两个选择。

要么按照@birgire的建议筛选有效的视频扩展。

我记得音频短代码也有类似的问题here.

在那里,我找到了一个解决方法,允许空的音频扩展。

您可以尝试类似的视频扩展。下面是一个演示插件:

/**
 * Allow the empty video extension to support GET parameters
 */
add_filter( \'wp_video_extensions\', function( $ext )
{
    $ext[] = \'\';
    return $ext;
} );
然后,您应该根据需要对其进行进一步限制,例如,采用与我使用音频短代码时类似的方式。

我查了trac的票找到了这张#30377 这项工作正在进行中。

或者使用过滤器根据您的需要过滤整个短代码wp_video_shortcode. E、 g.向名为type的快捷码添加另一个属性,并根据需要修改结果。

function my_video_shortcode($output, $atts, $video, $post_id, $library ) {
    /**
     * @param string $output  Video shortcode HTML output.
     * @param array  $atts    Array of video shortcode attributes.
     * @param string $video   Video file.
     * @param int    $post_id Post ID.
     * @param string $library Media library used for the video shortcode.
     */
}
资料来源:https://core.trac.wordpress.org/browser/tags/4.4.2/src/wp-includes/media.php#L2369

SO网友:birgire

我记得音频短代码也有类似的问题here.

在那里,我找到了一个解决方法,允许空的音频扩展。

您可以尝试类似的视频扩展。下面是一个演示插件:

<?php
/**
 * Plugin Name:  GET Parameters In The Video Shortcode
 * Description:  Allow video files with GET parameters in the video shortcode [video]
 * Author:       Birgir Erlendsson (birgire)
 * Plugin URI:   https://wordpress.stackexchange.com/a/220573/26350
 * Version:      1.0.0
 */
add_filter( \'wp_video_shortcode_override\', function( $html, $atts )
{
    add_filter( \'wp_video_extensions\', \'wpse_video_extensions\' );
    return $html;
}, 10, 2 );

function wpse_video_extensions( $ext )
{
    remove_filter( current_filter(), __FUNCTION__ );
    $ext[] = \'\';
    return $ext;
}
然后,您应该根据需要对其进行进一步限制,例如,采用与我使用音频短代码时类似的方式。

我查了trac的票找到了这张#30377 这项工作正在进行中。

相关推荐

SHORTCODE_ATTS()中的$ATTS参数是什么?

这个WordPress developers reference page for shortcode_atts() 国家:$atts(array)(必选)用户在shortcode标记中定义的属性。但我不理解这个定义。例如,在WP Frontend Profile 插件:$atts = shortcode_atts( [ \'role\' => \'\', ], $atts ); 据我所知,shortcode\