動画プレーヤーをショートコードで実装する
公開日:
更新日:
WordPressに動画プレーヤーをショートコードとして実装する方法です。
記事投稿の際、動画をアップロードすることができますが、WordPressにはプレーヤーが実装されておらず、動画ファイルへのリンクのみしか挿入することができません。
そこで、生成されたリンクの動画ファイルURLをショートコードにセットすることで、プレーヤーとして出力するためのコードを作ってみました。
実際のコードを見る前に、動画プレーヤー出力部分の処理出し分けの条件をご説明します。
動画プレーヤーは、フラッシュを使ったFLVプレーヤーと、その他の動画をQuick Timeで再生するための埋込プレーヤーに分けています。
FLVプレーヤーの方では、当然FLVプレーヤー本体が必要となりますので、swfobject.jsとplayer.swfはご自身で準備をお願いいたします。
(サンプルコードでは、swfはテンプレートディレクトリのルートに、jsはテンプレートディレクトリ配下のjsディレクトリに配置するものとして記述しています)
では、実際のコードです。
function sc_movie($atts, $content = null) {
extract(shortcode_atts(array(
"src" => '',
"width" => '480',
"height" => '360',
"autoplay" => 'false',
"controller" => 'true'
), $atts));
if(!empty($src)){
if (function_exists('is_ktai') && is_ktai()){
return '動画あり(PCで再生可能です)';
}else{
$retpc = '';
if(preg_match('/.flv$/i',$src)){
$mediaid = substr($src,strrpos($src,'/')+1,strlen(substr($src,strrpos($src,'/')+1))-4);
$retpc = '<div id="' . $mediaid . '"><script type="text/javascript" src="' . get_bloginfo('template_directory') . '/js/swfobject.js"></script></div>' . "n";
$retpc .= '<script type="text/javascript">' . "n";
$retpc .= 'var so = new SWFObject("' . get_bloginfo('template_directory') . '/player.swf","ply","' . $width . '","' . $height . '","9","#000000");' . "n";
$retpc .= 'so.addParam("allowscriptaccess","always");' . "n";
$retpc .= 'so.addParam("wmode","opaque");' . "n";
$retpc .= 'so.addVariable("file","' . $src . '");' . "n";
$retpc .= 'so.write("' . $mediaid . '");' . "n";
$retpc .= '</script>' . "n";
}else{
$retpc = '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" width="' . $width . '" height="' . $height . '" codebase="http://www.apple.com/qtactivex/qtplugin.cab">' . "n";
$retpc .= '<param name="src" value="' . $src . '" />' . "n";
$retpc .= '<param name="autoplay" value="' . $autoplay . '" />' . "n";
$retpc .= '<param name="controller" value="' . $controller . '" />' . "n";
$retpc .= '<embed src="' . $src . '" width="' . $width . '" height="' . $height . '" autoplay="' . $autoplay . '" controller="' . $controller . '" pluginspage="http://www.apple.com/quicktime/download/">' . "n";
$retpc .= '</object>' . "n";
}
return $retpc;
}
}
}
add_shortcode("movie", "sc_movie");
先頭に携帯電話の振り分けがありますが、この振り分けにはktai_styleプラグインを使用しています。
ただし、WordPressの管理画面からは3gp動画をアップすることができませんので、ここではPCから閲覧してくださいという文言を入れるだけにしています。
ショートコードの呼び出しは以下のように記述します。
[movie src=”http://example.com/wp-content/uploads/2010/06/test.flv” width=”480″ height=”360″ autoplay=”false” controller=”true”]