让Smartideo插件支持B站BV号视频链接_wordpress插件教程

B站(bilibili)近期调整视频链接ID为BV开头,B站说是为了保护稿件信息安全,容纳更多投稿,维护UP主的权益。但升级后的链接造成WordPres视频播放插件Smartideo中的正则无法获取由数字和大小写字母组成的字符串,原来直接复制粘贴视频地址到文章中调用视频的方法失效,有用户已在插件作者网站反映,作者并没有回应,可能因各视频站更新升级频繁,Smartideo插件很多视频站点都已不支持,估计作者已放弃更新了。

文章底部有第三方更新的插件下载,省去大家修改的步骤,但是安全性站长无法保证,建议还是手动更新下代码。

手动修改教程:

打开Smartideo插件smartideo.php文件,在87行代码处:

array($this, 'smartideo_embed_handler_bilibili') );  //源代码

下面添加:

wp_embed_register_handler( 'smartvideo_bilibili_bv',
	'#https?://www.bilibili.com/video/BV(?:(?[a-z0-9_=-]+)/(?:index_|#page=)(?[a-z0-9_=-]+)|(?[a-z0-9_=-]+))#i',
	array($this, 'smartvideo_embed_handler_bilibili_bv') );

195行代码处找到:

return apply_filters( 'embed_bilibili', $embed, $matches, $attr, $url, $rawattr );

在其下面“}”大括号下面添加:

public function smartvideo_embed_handler_bilibili_bv( $matches, $attr, $url, $rawattr ) {
	$matches['video_id'] = ($matches['video_id1'] == '') ? $matches['video_id'] : $matches['video_id1'];
	$page = ($matches['video_id2'] > 1) ? $matches['video_id2'] : 1;
	$cid = '';
	$embed = $this->get_iframe("//player.bilibili.com/player.html?bvid=BV{$matches['video_id']}&cid={$cid}&page={$page}", $url);
	return apply_filters( 'embed_bilibili', $embed, $matches, $attr, $url, $rawattr );
}

之后直接在文章中添加B站视频地址:

https://www.bilibili.com/video/BV1WW411b7NQ

这样修改后的插件不支持原AV号链接,我们继续修改:

smartideo.php文件中找到下方代码,在176行代码处,可以直接搜索下面的一行代码就可以找到

public function smartideo_embed_handler_bilibili( $matches, $attr, $url, $rawattr ) {

//利用宝塔搜索功能,就可以直接搜索到下面所有的代码位置
public function smartideo_embed_handler_bilibili( $matches, $attr, $url, $rawattr ) {
    $matches['video_id'] = ($matches['video_id1'] == '') ? $matches['video_id'] : $matches['video_id1'];
    $page = ($matches['video_id2'] > 1) ? $matches['video_id2'] : 1;
    $cid = '';
    /*
    try{
        $request = new WP_Http();
        $url = "https://api.bilibili.com/view?type=jsonp&appkey=8e9fc618fbd41e28&id=" . $matches['video_id'];
        $data = (array)$request->request($url, array('timeout' => 3));
        $json = json_decode($data['body'], true);
        $cid = $json['cid'];
 
    }catch(Exception $e){}
    */
    if(wp_is_mobile() || $this->bilibili_pc_player == 1){
        $embed = $this->get_iframe("//player.bilibili.com/player.html?aid={$matches['video_id']}&cid={$cid}&page={$page}", $url);
    }else{
        $embed = $this->get_link($url);
    }
    return apply_filters( 'embed_bilibili', $embed, $matches, $attr, $url, $rawattr );
}

修改为下面的代码:

public function smartideo_embed_handler_bilibili( $matches, $attr, $url, $rawattr ) {
    $matches['video_id'] = ($matches['video_id1'] == '') ? $matches['video_id'] : $matches['video_id1'];
    $page = ($matches['video_id2'] > 1) ? $matches['video_id2'] : 1;
    $cid = '';
        $embed = $this->get_iframe("//player.bilibili.com/player.html?aid={$matches['video_id']}&cid={$cid}&page={$page}", $url);
    return apply_filters( 'embed_bilibili', $embed, $matches, $attr, $url, $rawattr );
}

补充:防止选择清晰度或者点击图标时跳转到B站。

继续找下面的代码进行修改

<iframe src="' . $url . '" width="100%" height="100%" frameborder="0" allowfullscreen="true"></iframe>

修改为:

<iframe src="' . $url . '" width="100%" height="100%" frameborder="0" allowfullscreen="true"  sandbox="allow-top-navigation allow-same-origin allow-forms allow-scripts"></iframe>

修改后同时兼容av和BV号,下面是演示哔哩哔哩动画BV号链接:

修改版插件下载

提取码:无
解压码:无

给TA买糖
共{{data.count}}人
人已赞赏
WordPress教程

wordpress防评论灌水代码(已测试柒比贰B2主题)

2020-5-16 18:36:24

WordPress插件WordPress教程

Elementor Pro_世界领先的WordPress页面生成器

2020-6-9 11:23:07

重要说明

本站资源大多来自网络,如有侵犯你的权益请联系管理员Mankey 或给邮箱发送邮件l.0.h#foxmail.com 我们会第一时间进行审核删除。站内资源为网友个人学习或测试研究使用,未经原版权作者许可,禁止用于任何商业途径!请在下载24小时内删除!


如果遇到评论下载的文章,评论后刷新页面点击对应的蓝字按钮即可跳转到下载页面本站资源少部分采用7z压缩,为防止有人压缩软件不支持7z格式,7z解压,建议下载7-zip(点击下载),zip、rar解压,建议下载WinRAR(点击下载)

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索