Smartideo 是为 WordPress 添加对在线视频支持的一款插件(支持手机、平板等设备HTML5播放)。 目前支持优酷、搜狐视频、土豆、56、腾讯视频、新浪视频、酷6、华数、乐视 等网站。
你可以直接粘贴视频播放页完整的URL到编辑器(单独一行),就可以加载视频播放器。
插件安装
- 你可以在后台插件管理页面中直接搜索
Smartideo
并安装. - 或者上传文件夹
smartideo
至/wp-content/plugins/
目录. - 在插件管理页面中激活 Smartideo.
使用方法
- 你可以直接粘贴视频播放也完整的URL到编辑器(单独一行),就可以加载视频播放器。
URL样例
- http://v.youku.com/v_show/id_XMTYzNTgxNTMy.html
- http://www.tudou.com/programs/view/YBdHhxJqrLY/
- http://www.56.com/u35/v_MTEwMjM5NDcy.html
- http://v.qq.com/page/o/9/f/o0142tt1m9f.html
- http://v.qq.com/cover/t/tyeqdw6rof7t5ow/p0015kjlai9.html
- http://my.tv.sohu.com/us/94469256/77228432.shtml
- http://www.wasu.cn/Play/show/id/5079941
- http://v.yinyuetai.com/video/2207109
- http://v.ku6.com/show/P0Ib_pTne6-FBSa1AbtKUQ...html
- http://www.letv.com/ptv/vplay/20932037.html
效果展示
插件下载
- 本地下载:smartideo-for-wordpress.zip
- WordPress插件中心:https://wordpress.org/plugins/smartideo/
- GitHub:https://github.com/nothingisover/smartideo
插件代码预览
<?php /* Plugin Name: Smartideo Plugin URI: http://www.fengziliu.com/ Description: Smartideo 是为 WordPress 添加对在线视频支持的一款插件(支持手机、平板等设备HTML5播放)。 目前支持优酷、搜狐视频、土豆、56、腾讯视频、新浪视频、酷6、华数、乐视 等网站。 Version: 1.2 Author: Fens Liu Author URI: http://www.fengziliu.com/smartideo-for-wordpress.html */ define('SMARTIDEO_VERSION', '1.0'); define('SMARTIDEO_URL', plugins_url('', __FILE__)); define('SMARTIDEO_PATH', dirname( __FILE__ )); $smartideo = new smartideo(); class smartideo{ private $width = '100%'; private $height = '500'; private $mobile_width = '100%'; private $mobile_height = '250'; public function __construct(){ if(is_admin()){ add_action('admin_menu', array($this, 'admin_menu')); } $option = get_option('smartideo_option'); if(!empty($option)){ $option = json_decode($option, true); }else{ $option = array(); } extract($option); if(!empty($width)){ $this->width = $width; } if(!empty($height)){ $this->height = $height; } if(!empty($mobile_width)){ $this->mobile_width = $mobile_width; } if(!empty($mobile_height)){ $this->mobile_height = $mobile_height; } wp_embed_register_handler( 'smartideo_tudou', '#https?://(?:www\.)?tudou\.com/(?:programs/view|listplay/(?<list_id>[a-z0-9_=\-]+))/(?<video_id>[a-z0-9_=\-]+)#i', array($this, 'smartideo_embed_handler_tudou') ); wp_embed_register_handler( 'smartideo_56', '#https?://(?:www\.)?56\.com/[a-z0-9]+/(?:play_album\-aid\-[0-9]+_vid\-(?<video_id1>[a-z0-9_=\-]+)|v_(?<video_id2>[a-z0-9_=\-]+))#i', array($this, 'smartideo_embed_handler_56') ); wp_embed_register_handler( 'smartideo_youku', '#https?://v\.youku\.com/v_show/id_(?<video_id>[a-z0-9_=\-]+)#i', array($this, 'smartideo_embed_handler_youku') ); wp_embed_register_handler( 'smartideo_qq', '#https?://v\.qq\.com/(?:cover/g/[a-z0-9_\.]+\?vid=(?<video_id1>[a-z0-9_=\-]+)|(?:[a-z0-9/]+)/(?<video_id2>[a-z0-9_=\-]+))#i', array($this, 'smartideo_embed_handler_qq') ); wp_embed_register_handler( 'smartideo_sohu', '#https?://my\.tv\.sohu\.com/us/(?:\d+)/(?<video_id>\d+)#i', array($this, 'smartideo_embed_handler_sohu') ); wp_embed_register_handler( 'smartideo_wasu', '#https?://www\.wasu\.cn/play/show/id/(?<video_id>\d+)#i', array($this, 'smartideo_embed_handler_wasu') ); wp_embed_register_handler( 'smartideo_yinyuetai', '#https?://v\.yinyuetai\.com/video/(?<video_id>\d+)#i', array($this, 'smartideo_embed_handler_yinyuetai') ); wp_embed_register_handler( 'smartideo_ku6', '#https?://v\.ku6\.com/show/(?<video_id>[a-z0-9\-_\.]+).html#i', array($this, 'smartideo_embed_handler_ku6') ); wp_embed_register_handler( 'smartideo_letv', '#https?://www\.letv\.com/ptv/vplay/(?<video_id>\d+)#i', array($this, 'smartideo_embed_handler_letv') ); } public function smartideo_embed_handler_tudou( $matches, $attr, $url, $rawattr ) { if(wp_is_mobile()){ $embed = $this->get_iframe("http://www.tudou.com/programs/view/html5embed.action?type=0&code={$matches['video_id']}"); }else{ $embed = $this->get_embed("http://www.tudou.com/v/{$matches['video_id']}/&resourceId=0_05_05_99&bid=05/v.swf"); } return apply_filters( 'embed_tudou', $embed, $matches, $attr, $url, $rawattr ); } public function smartideo_embed_handler_56( $matches, $attr, $url, $rawattr ) { $matches['video_id'] = $matches['video_id1'] == '' ? $matches['video_id2'] : $matches['video_id1']; if(wp_is_mobile()){ $embed = $this->get_iframe("http://www.56.com/iframe/{$matches['video_id']}"); }else{ $embed = $this->get_embed("http://player.56.com/v_{$matches['video_id']}.swf"); } return apply_filters( 'embed_56', $embed, $matches, $attr, $url, $rawattr ); } public function smartideo_embed_handler_youku( $matches, $attr, $url, $rawattr ) { if(wp_is_mobile()){ $embed = $this->get_iframe("http://player.youku.com/embed/{$matches['video_id']}"); }else{ $embed = $this->get_embed("http://player.youku.com/player.php/sid/{$matches['video_id']}/v.swf"); } return apply_filters( 'embed_youku', $embed, $matches, $attr, $url, $rawattr ); } public function smartideo_embed_handler_qq( $matches, $attr, $url, $rawattr ) { $matches['video_id'] = $matches['video_id1'] == '' ? $matches['video_id2'] : $matches['video_id1']; if(wp_is_mobile()){ $embed = $this->get_iframe("http://v.qq.com/iframe/player.html?vid={$matches['video_id']}"); }else{ $embed = $this->get_embed("http://static.video.qq.com/TPout.swf?vid={$matches['video_id']}"); } return apply_filters( 'embed_qq', $embed, $matches, $attr, $url, $rawattr ); } public function smartideo_embed_handler_sohu( $matches, $attr, $url, $rawattr ) { if(wp_is_mobile()){ $embed = $this->get_iframe("http://tv.sohu.com/upload/static/share/share_play.html#{$matches['video_id']}_0_0_9001_0"); }else{ $embed = $this->get_embed("http://share.vrs.sohu.com/my/v.swf&topBar=1&id={$matches['video_id']}&autoplay=false&xuid=&from=page"); } return apply_filters( 'embed_sohu', $embed, $matches, $attr, $url, $rawattr ); } public function smartideo_embed_handler_wasu( $matches, $attr, $url, $rawattr ) { if(wp_is_mobile()){ $embed = $this->get_iframe("http://www.wasu.cn/Play/iframe/id/{$matches['video_id']}"); }else{ $embed = $this->get_embed("http://s.wasu.cn/portal/player/20141216/WsPlayer.swf?mode=3&vid={$matches['video_id']}&auto=0&ad=4228"); } return apply_filters( 'embed_wasu', $embed, $matches, $attr, $url, $rawattr ); } public function smartideo_embed_handler_yinyuetai( $matches, $attr, $url, $rawattr ){ $embed = $this->get_embed("http://player.yinyuetai.com/video/player/{$matches['video_id']}/v_0.swf"); return apply_filters( 'embed_yinyuetai', $embed, $matches, $attr, $url, $rawattr ); } public function smartideo_embed_handler_ku6( $matches, $attr, $url, $rawattr ){ $embed = $this->get_embed("http://player.ku6.com/refer/{$matches['video_id']}/v.swf"); return apply_filters( 'embed_ku6', $embed, $matches, $attr, $url, $rawattr ); } public function smartideo_embed_handler_letv($matches, $attr, $url, $rawattr){ $embed = $this->get_embed("http://i7.imgs.letv.com/player/swfPlayer.swf?id={$matches['video_id']}&autoplay=0"); return apply_filters( 'embed_letv', $embed, $matches, $attr, $url, $rawattr ); } private function get_embed($url){ $embed = sprintf( '<embed src="%1$s" allowFullScreen="true" quality="high" width="%2$s" height="%3$s" allowScriptAccess="always" type="application/x-shockwave-flash"></embed>', $url, $this->width, $this->height); return $embed; } private function get_iframe($url){ $iframe = sprintf( '<iframe src="%1$s" width="%2$s" height="%3$s" frameborder="0" allowfullscreen="true"></iframe>', $url, $this->mobile_width, $this->mobile_height); return $iframe; } public function admin_menu(){ add_plugins_page('Smartideo 设置', 'Smartideo 设置', 'manage_options', 'smartideo_settings', array($this, 'admin_settings')); } public function admin_settings(){ if($_POST['smartideo_submit'] == '保存'){ $param = array('width', 'height', 'mobile_width', 'mobile_height'); $json = array(); foreach($_POST as $key => $val){ if(in_array($key, $param)){ $json[$key] = $val; } } $json = json_encode($json); update_option('smartideo_option', $json); } $option = get_option('smartideo_option'); if(!empty($option)){ $option = json_decode($option, true); } if(empty($option['width'])){ $option['width'] = '100%'; } if(empty($option['height'])){ $option['height'] = '500'; } if(empty($option['mobile_width'])){ $option['mobile_width'] = '100%'; } if(empty($option['mobile_height'])){ $option['mobile_height'] = '250'; } echo '<h2>Smartideo 设置</h2>'; echo '<form action="" method="post"> <table class="form-table"> <tr valign="top"> <th scope="row">播放器宽度</th> <td> <label><input type="text" class="regular-text code" name="width" value="'.$option['width'].'"></label> <br /> <p class="description">默认宽度为100%</p> </td> </tr> <tr valign="top"> <th scope="row">播放器高度</th> <td> <label><input type="text" class="regular-text code" name="height" value="'.$option['height'].'"></label> <br /> <p class="description">默认高度为500px</p> </td> </tr> <tr valign="top"> <th scope="row">移动设备播放器宽度</th> <td> <label><input type="text" class="regular-text code" name="mobile_width" value="'.$option['mobile_width'].'"></label> <br /> <p class="description">手机、平板等设备访问时,默认宽度为100%</p> </td> </tr> <tr valign="top"> <th scope="row">移动设备播放器高度</th> <td> <label><input type="text" class="regular-text code" name="mobile_height" value="'.$option['mobile_height'].'"></label> <br /> <p class="description">手机、平板等设备访问时,默认高度为250px</p> </td> </tr> </table> <p class="submit"><input type="submit" name="smartideo_submit" id="submit" class="button-primary" value="保存"></p> </form>'; } }
最新评论