WordPress 4.4.2(これを書いている時点での最新版)の使い方
私は自分のサイトにビデオを表示するために[video]ショートコードを使用しようとしています。私がfilename.mp4
で終わるURLを提供するならば、それはうまく機能します:
[video src="http://example.com/filename.mp4"]
しかし、URLの最後にクエリ文字列パラメータを追加すると、ビデオプレーヤーが表示されません。代わりに、URLへのリンクを表示しているだけです。
[video src="http://example.com/filename.mp4?type=0"]
mp4
属性を使用してみたところ、同じ結果が得られました。
src
またはmp4
属性でクエリ文字列パラメータを許可する[video]ショートコードを取得するにはどうすればよいですか
2つの選択肢があります。
@birgireが推奨しているように、有効なビデオの拡張子をフィルタリングしてください。
私はここでオーディオショートコード についても同様の問題を覚えています 。
そこで私は空の音声拡張を許可することで回避策を見つけました。
あなたはビデオ拡張と同じようなことを試みることができます。これがデモ用のプラグインです。
/** * Allow the empty video extension to support GET parameters */ add_filter( 'wp_video_extensions', function( $ext ) { $ext[] = ''; return $ext; } );
その後、必要に応じてこれをさらに制限する必要があります。オーディオショートコードと同じように。
私はTracのチケットを検索し、このチケット #30377 を見つけました。
または、フィルタwp_video_shortcode
を使用して、必要に応じてショートコード全体をフィルタリングすることもできます。例えば。 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
私はここでオーディオショートコード についても同様の問題を覚えています 。
そこで私は空の音声拡張を許可することで回避策を見つけました。
あなたはビデオ拡張と同じようなことを試みることができます。これがデモ用のプラグインです。
<?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 を見つけました。