You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WordPress生成文章内容前修改内容及配置域名前缀脚本

如何在WordPress生成文章内容前给指定链接添加自定义域名前缀

根据你的需求,我整理了两种靠谱的实现方案,分别适合后端预处理(推荐)和前端处理场景,你可以按需选择:

方案1:后端钩子处理(页面渲染前修改,更可靠)

WordPress的the_content过滤器是处理这类需求的最佳选择——它能在内容输出到页面之前完成修改,不会有前端脚本的加载延迟问题,对SEO也更友好。

操作步骤:

  1. 打开你的主题functions.php文件,或者更推荐使用自定义功能插件(避免主题更新后代码丢失)。
  2. 粘贴以下代码:
add_filter('the_content', 'append_custom_prefix_to_target_links');
function append_custom_prefix_to_target_links($content) {
    // 替换成你的自定义前缀域名
    $custom_prefix = 'https://mydomainasd.com';
    // 需要处理的目标域名列表,把你的完整域名加进去
    $target_domains = ['mediafire.com', 'www.abc.com', 'mega.nz', 'drive.google.com'];
    
    // 遍历每个目标域名,批量替换链接
    foreach ($target_domains as $domain) {
        // 正则匹配包含目标域名的a标签href属性,确保匹配准确
        $pattern = '/<a(.*?)href="(https?:\/\/' . preg_quote($domain, '/') . '[^"]+)"(.*?)>/i';
        // 把原始URL作为参数拼到前缀域名后,保证URL格式安全
        $replacement = '<a$1href="' . esc_url($custom_prefix) . '/?url=$2"$3>';
        $content = preg_replace($pattern, $replacement, $content);
    }
    
    return $content;
}

代码说明:

  • 这个函数会拦截所有文章内容,自动识别包含目标域名的下载链接,给它们加上你的自定义前缀。
  • preg_quote用来转义域名里的特殊字符(比如.),防止正则表达式出错。
  • esc_url确保生成的URL符合安全规范,避免XSS风险。

方案2:优化你的前端脚本(适合必须用前端处理的场景)

如果你坚持用前端脚本实现,可以优化现有代码,避免内容加载后才修改导致的闪烁问题:

// 把这段脚本放在</body>标签之前,或者用DOMContentLoaded监听确保DOM加载完成
document.addEventListener('DOMContentLoaded', function() {
    const customPrefix = 'https://mydomainasd.com';
    const targetDomains = ['mediafire.com', 'www.abc.com','mega.nz', 'drive.google.com'];
    
    // 获取页面所有a标签
    const links = document.querySelectorAll('a');
    
    links.forEach(link => {
        const href = link.getAttribute('href');
        if (!href) return;
        
        // 检查当前链接是否包含目标域名
        const isTargetLink = targetDomains.some(domain => href.includes(domain));
        
        if (isTargetLink) {
            // 用encodeURIComponent编码原始URL,避免特殊字符破坏链接结构
            link.setAttribute('href', `${customPrefix}/?url=${encodeURIComponent(href)}`);
        }
    });
});

优化点:

  • 用DOMContentLoaded事件确保页面元素完全加载后再处理,避免找不到链接元素。
  • encodeURIComponent编码原始URL,防止特殊字符(比如#、!)导致的链接失效问题。

额外提示:

  • 如果你需要永久修改数据库里的文章内容,可以改用save_post钩子,在文章保存/更新时自动处理链接。
  • 修改代码后记得清除WordPress缓存,确保修改立即生效。

内容的提问来源于stack exchange,提问作者my notmypt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:09:17