一个WordPress下载框短代码,支持百度秒传链接以及其他各种链接

说明

因为网站没有实装,所以截个图。

这个函数得是我好几年前写的了,本来是用来检查和显示百度盘链接有效性的,小改了一下用来生成百度秒传链接,就是百度盘秒传脚本支持的那个链接。总体来说用处不大就是了,只是显示在网页上好看一点。

这个函数支持三种调用模式,常规形式:

[down_box file_name="未命名" file_size="未知" file_des="无描述" btn_name="按钮名称" btn_link="https://#/" od_link="https://#/" bd_link="https://#/" bd_pwd="1111"]]

或者

[[down_box file_name="未命名" file_size="未知" file_des="无描述" btn_name="按钮名称" btn_link="https://#/" od_link="https://#/" bd_link="https://#/" bd_pwd="1111"]更多描述[/down_box]

主要判断file_namebtn_linkod_linkbd_link这几个参数,如果不增加这几个参数就不会显示对应按钮。

其中,

file_name这个参数不填的话就不会显示文件名那一栏。

btn_link用来添加自定义链接的按钮,btn_name用来给按钮改名。

bd_pwd这个参数用来自动把百度盘的提取码通过?pwd=附带到链接后面,如果你不希望这样,应该把提取码写在其他地方。

另外这个短代码自带一个开关bd_s_link="true",用来生成秒传链接,形式:

[down_box file_name="文件名:未命名" file_size="文件大小:未知" file_des="说明:无描述" bd_s_link="true"]]
78f71643e17a1a0b207708b8697a2038#76527748#jre1.8.0_301.zip
78f71643e17a1a0b207708b8697a2038#76527748#jre1.8.0_302.zip
78f71643e17a1a0b207708b8697a2038#76527748#jre1.8.0_303.zip
[[/down_box]

这个参数之后,会把短代码中间的内容生成生成#bdlink=格式的秒传链接,支持合并多个文件,不影响其他参数生成的按钮。但是因为这个参数会整体输出[shortcode][/shortcode]中间的$content,所以其中同时填写了别的内容之后会生成不正确的链接,需要注意一下。

代码

把函数和样式复制到主题的function.php和style,就可以用了。

不过有几个需要注意的地方:

  • 这里用的是Bootstrap的图标库,你可能需要把里面的<li>替换成你自己主题的图标库。
  • 右侧的图片这里是调用了本站主题自带的图片,也需要改,可以换成你自己的公众号二维码什么的。
  • 因为有主题样式影响,这里给出的样式表可能和图片中的并不完全一样,总之应该大差不差。
  • 主题后台编辑器里的生成函数因为是用了别的框架,就不放在这里了。
//下载提示框
function download_box_shortcode($atts = array(), $content = ''){
    //定义简码参数
    $atts = shortcode_atts(array(
        'file_name' => '',
        'file_size' => '',
        'file_des' => '',
        'btn_name' => '',
        'btn_link'  => '',
        'od_link' => '',
        'bd_link' => '',
        'bd_pwd' => '',
        'magnet_xt' => '',
        'bd_s_link' => false,
    ), $atts, 'download_box_shortcode');
    $html = '';
    //开始输出组件
    $html .= '<div class="down-box-detail"><div class="box-l">';
    if($atts['file_name'] !== ''){
        $html .= '<p><b>'.$atts['file_name'].'</b><br />'.$atts['file_size'].' / '.$atts['file_des'].'<p>';
    }
    $html .= '<p>'.$content.'<p>';
    $html .= '<div class="down-btn">';
    //输出自定义按钮
    if($atts['btn_link'] !== ''){
        $have_name = ($atts['btn_name'] !== '') ? $atts['btn_name'] : '打开链接';
        $html .= '<a href="'.$atts['btn_link'].'" rel="nofollow"><i class="bi bi-link"></i> '.$have_name.'</a>';
    }
    //输出OD盘
    if($atts['od_link'] !== ''){
        $html .= '<a href="'.$atts['od_link'].'" rel="nofollow"><i class="bi bi-box"></i> OneDrive</a>';
    }
    //输出百度盘
    if($atts['bd_link'] !== ''){
        $have_pwd = ($atts['bd_link'] !== '') ? '?pwd='.$atts['bd_pwd'] : '';
        $html .= '<a href="'.$atts['bd_link'].$have_pwd.'" rel="nofollow"><i class="bi bi-cloud-check"></i> BD网盘</a>';
    }
    //输出磁力链接
    if($atts['magnet_xt'] !== ''){
        $html .= '<a href="'.$atts['magnet_xt'].'" rel="nofollow"><i class="bi bi-magnet"></i> Magnet</a>';
    }
    //输出百度秒传
    if($atts['bd_s_link'] !== false){
        $html .= '<a href="https://pan.baidu.com/#bdlink='.base64_encode(str_replace('<br />', '', $content)).'" rel="nofollow"><i class="bi bi-lightning-charge"></i> BD秒传</a>';
    }
    $html .= '</div></div><div class="box-r"><img src="'.get_template_directory_uri().'/image/external.png"></div></div>';

    return $html;
}
add_shortcode('down_box', 'download_box_shortcode');

样式表:

/* 短代码 下载提示框 */
.down-box-detail {
    overflow: hidden;
    padding: 1rem;
    background: #eee;
    border-radius: 5px;
}
.down-box-detail .box-l {
    float: left;
}
.down-box-detail .box-r {
    float: right;
}
.down-box-detail  b {
    font-weight: bold;
}
.down-box-detail  p {
    margin-bottom: 0;
    padding-bottom: 5px;
    color: #333;
}
.down-box-detail .down-btn {
    height: 38px;
    padding-top: 10px;
}
.down-box-detail a {
    display: inline-block;
    margin-right: 20px;
    padding: 0 15px;
    border-radius: 5px;
    text-align: center;
    background: #f1404b;
    color: #fff;
    line-height: 38px;
}
.down-box-detail .box-r img {
    display: block;
    margin: 0 auto;
    height: 134px;
    max-width: 100%;
}
THE END
夜华子酱我知道你很急,但你先别急