本文发布于 257 天前,最后更新于83天前,其中的信息可能已经有所发展或是发生改变,如有需要,请联系我(
[email protected])进行更新吖~
前言
Bilibili 是国内知名的视频分享平台,上面有很多精良而又有趣的视频。一些人喜欢(比如我)把B站视频通过iframe插入网页上,但代码大长(约230个字符)。于是为了方便大家,我堤供一个在WordPress通过短代码插入bilibili视频的教程。
更新日志
- 2023/10/29 重写代码,修改了匹配bv号和av号规则,用法也改了
- 2023/7/4 优化了代码,删掉了Bilibili视频高度和宽度控制,改为Bilibili视频自适应大小。
教程
一、
打开WordPress根目录下wp-content/themes/你正在使用的主题/functions.php文件
或者你在仪表盘的主题文件编辑器中打开functions.php文件
二、
复制下面的代码到functions.php文件的最后处
code
“`
// 添加插入bilibili视频短代码
function vbilibili_shortcode( $atts, $content = null ) {
// 解析短代码中的参数
$atts = shortcode_atts( $defaults, $atts );
// 提取$content中的所有bv号和av号
preg_match_all('/BV([a-zA-Z0-9]+)/', $content, $bv_matches);
preg_match_all('/av([0-9]+)/', $content, $av_matches);
// 构建iframe的HTML代码
$iframes = '';
// 生成bv号对应的iframe
foreach ($bv_matches[1] as $bv) {
$iframe_url = 'https://player.bilibili.com/player.html?bvid=' . $bv . '&high_quality=1';
$iframe = '<div style="position: relative; padding: 30% 45%;"><iframe src="' . $iframe_url . '" frameborder="no" scrolling="no" sandbox="allow-top-navigation allow-same-origin allow-forms allow-scripts" allowfullscreen="allowfullscreen" style="position: absolute; width: 100%; height: 100%; left: 0; top: 0;"> </iframe></div><br>';
$iframes .= $iframe;
}
// 生成av号对应的iframe
foreach ($av_matches[1] as $av) {
// 将$av转换为整数类型
$av = intval($av);
$iframe_url = 'https://player.bilibili.com/player.html?aid=' . $av . '&high_quality=1';
$iframe = '<div style="position: relative; padding: 30% 45%;"><iframe src="' . $iframe_url . '" frameborder="no" scrolling="no" sandbox="allow-top-navigation allow-same-origin allow-forms allow-scripts" allowfullscreen="allowfullscreen" style="position: absolute; width: 100%; height: 100%; left: 0; top: 0;"> </iframe></div><br>';
$iframes .= $iframe;
}
// 返回所有iframe的HTML代码
return $iframes;
}
add_shortcode( 'vbilibili', 'vbilibili_shortcode' );
“`
简码使用说明
介绍
该短代码可以插入Bilibili视频。
用法
[vbilibili]啥都行,只要有bv和av在这就行了[/vbilibili]
只要短代码包含bv号或av号就行了,可以有多个bv号和av号
参数
无
示例
[vbilibili]https://www.bilibili.com/video/BV1EX4y127J9/[/vbilibili]
[vbilibili]华为能挡子弹?Mate 60 Pro 碾压 跌落 实弹测试! - 哔哩哔哩https://www.bilibili.com/video/BV1L94y1p72w/[/vbilibili]
[vbilibili]BV1L94y1p72w[/vbilibili]
[vbilibili]BV1L94y1p72w,https://www.bilibili.com/video/BV1RN411w7Bv/[/vbilibili]
评论