实现全局 MP3 自动解析

实现全局 MP3 自动解析-果果资源网
实现全局 MP3 自动解析
此内容为付费阅读,请付费后查看
9.9
立即购买
您当前未登录!建议登陆后购买,可保存购买订单
付费阅读
  • 进入 WP 后台 → 外观 → 主题文件编辑器 → 找到 functions.php
  • 拉到文件最底部,粘贴下面全部代码保存即可
  • /**
     * 全局自动解析所有MP3链接为子比audio短代码
     * 不限域名、不限中转接口、支持中文文件名、a标签/纯文本链接
     */
    function global_mp3_auto_convert(string $content): string
    {
        // 防止重复多次替换
        if (str_contains($content, '(https?:\/\/[^\'"]+?\.mp3)["\'][^>]*>.*?<\/a>/is';
        $content = preg_replace_callback($pattern_a, function ($matches) use ($get_title) {
            $url = urldecode($matches[1]);
            $title = $get_title($url);
            return sprintf('%s', esc_attr($url), esc_attr($title));
        }, $content);
    
        // 2. 匹配页面裸露纯文本MP3链接(任意域名、任意接口路径)
        $pattern_text = '/(https?:\/\/[^\s<>"\']+?\.mp3)/is';
        $content = preg_replace_callback($pattern_text, function ($matches) use ($get_title) {
            $url = urldecode($matches[1]);
            $title = $get_title($url);
            return sprintf('%s', esc_attr($url), esc_attr($title));
        }, $content);
    
        return $content;
    }
    
    // 1. 发布/更新文章时自动转换入库
    add_filter('wp_insert_post_data', function ($post_data, $postarr) {
        $allow_type = ['post', 'page'];
        if (!in_array($post_data['post_type'], $allow_type)) {
            return $post_data;
        }
        $post_data['post_content'] = global_mp3_auto_convert($post_data['post_content']);
        return $post_data;
    }, 999, 2);
    
    // 2. 前台访问实时解析(旧文章不用重新保存也能自动播放)
    add_filter('the_content', 'global_mp3_auto_convert', 5);
© 版权声明
THE END
喜欢就支持一下吧
点赞13赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容