wordpress/网站建设

WordPress通过短代码插入bilibili视频

daimafengzi · 5月21日 · 2024年 · · 本文共1036个字 · 预计阅读4分钟83次已读

WordPress通过短代码插入bilibili视频

前言

Bilibili 是国内知名的视频分享平台,上面有很多精良而又有趣的视频。一些人喜欢 (比如我) 把 B 站视频通过 iframe 插入网页上,但代码大长 (约 230 个字符)。于是为了方便大家,我堤供一个在 WordPress 通过短代码插入 bilibili 视频的教程。

教程

一、打开 WordPress 根目录下 wp-content/themes/你正在使用的主题/functions.php 文件
WordPress通过短代码插入bilibili视频
或者你在仪表盘的主题文件编辑器中打开 functions.php 文件
WordPress通过短代码插入bilibili视频
二、复制下面的代码到 functions.php 文件的最后处

// 添加插入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
   if (!empty($bv_matches[1])) {
       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
   if (!empty($av_matches[1])) {
       foreach ($av_matches[1] as $av) {
       
            // 将$av转换为整数类型
            $av = intval($av);
       
           $iframe_url = 'https://player.bilibili.com/player.html?aid=' . $av . '&amp;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' );

简码使用说明

用法,下面哪种都行

//请把< 换成 [
<vbilibili]啥都行,只要有bv和av在这就行了[/vbilibili]

<vbilibili]https://www.bilibili.com/video/BV1EX4y127J9/[/vbilibili]

<vbilibili]BV1L94y1p72w[/vbilibili]

<vbilibili]BV1L94y1p72w,https://www.bilibili.com/video/BV1RN41BV1RN411w7Bv1w7Bv/[/vbilibili]

<vbilibili]华为能挡子弹?Mate 60 Pro 碾压 跌落 实弹测试! - 哔哩哔哩https://www.bilibili.com/video/BV1L94y1p72w/[/vbilibili]

参数

av:Bilibili 视频的 AV 号av和bv必填一项
bv:Bilibili 视频的 BV 号av和bv必填一项
h:X/Xpx/X% Bilibili 视频的高度号
w:X/Xpx/X% Bilibili 视频的宽度号

注意:
1. Bilibili 视频的 AV 号或 BV 号是必须的,但只要输入 AV 号或 BV 号的其中一个即可。
2. Bilibili 视频的 AV 号不要带上 av

如果是列表页

则在参数后面带第几个视频的参数:

<vbilibili]BV1YT4y1H7YM&page=2[/vbilibili] //请把 < 换成 [ 

列子


0 条回应