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

如何在WordPress中编写函数替换指定域名的iframe src属性

WordPress函数:替换指定域名的iframe src属性

Hey there! 作为WordPress新手,你要实现的这个需求其实不难,我们可以通过自定义函数结合WordPress的内容过滤器来搞定。下面是具体的实现方案,一步步来就行:

具体实现步骤

  • 首先,找到你当前主题的functions.php文件(可以在WordPress后台的「外观→主题文件编辑器」里找到,或者通过FTP访问网站目录的wp-content/themes/你的主题名/文件夹)
  • 把下面的代码添加到functions.php的末尾(注意:修改前最好备份一下文件,或者用子主题,避免主题更新后代码丢失)
  • 替换代码里的目标域名和新的src前缀为你实际需要的内容
  • 保存文件,刷新文章页面就能看到效果啦

完整代码

function replace_specific_iframe_src($content) {
    // 这里改成你要识别的目标域名
    $target_domain = 'examplesite3.tld';
    // 这里设置替换后的基础URL,根据你的实际路径调整
    $new_src_base = '/embed.php?ref=';

    // 正则匹配包含目标域名的iframe标签,确保只替换指定域名的src
    $pattern = '/<iframe\s+src="(https?:\/\/' . preg_quote($target_domain, '/') . '\/[^"]+)"([^>]*)>/i';
    // 拼接成新的src格式
    $replacement = '<iframe src="' . $new_src_base . '$1"$2>';

    // 执行替换并返回处理后的内容
    return preg_replace($pattern, $replacement, $content);
}
// 挂载到WordPress的内容过滤器,让文章内容输出前自动处理
add_filter('the_content', 'replace_specific_iframe_src');

代码说明

  • 这个函数会自动扫描文章里的所有iframe标签,只替换包含examplesite3.tld域名的那个,其他域名的iframe完全不受影响
  • preg_quote函数是为了防止域名里的特殊字符(比如.)干扰正则匹配,确保匹配准确
  • 如果你需要处理多个域名,可以稍微修改一下正则表达式,比如把$target_domain改成(examplesite3.tld|anotherdomain.tld)这样的格式,不过新手先从单个域名开始试更稳妥
  • 记得确认你的embed.php文件已经放在网站根目录,如果是放在子文件夹里,要把$new_src_base改成对应的路径,比如/subfolder/embed.php?ref=

测试建议

写完代码后,你可以发布一篇测试文章,插入几个不同域名的iframe,然后查看页面的源代码,检查目标域名的iframe是不是已经变成了你想要的格式。

内容的提问来源于stack exchange,提问作者Ali Hassan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:47:29