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

如何用PHP add_action函数在WordPress视频(embed/iframe等)中显示横幅广告?

在WordPress的视频相关元素旁添加横幅广告的方案

嘿,我懂你想在embed、iframe、object、video这些视频元素附近加横幅广告的需求~不过得先明确一点:这些是HTML元素,不是WordPress的动作钩子(action hook),所以没办法直接用add_action()把函数绑定到它们身上哦。不过我们可以用「输出缓冲+内容过滤」的方式来实现这个效果,下面是具体的方案:

核心思路

我们通过WordPress的钩子启动输出缓冲,捕获页面的全部HTML内容,然后用正则表达式匹配到目标元素,在它们的前后插入广告代码,最后输出修改后的内容。

完整代码示例

// 启动输出缓冲,绑定内容过滤函数
add_action('template_redirect', 'init_video_ad_buffer');
function init_video_ad_buffer() {
    // 仅在前台页面启用,避免影响后台
    if (!is_admin()) {
        ob_start('insert_banner_ads_around_video_elements');
    }
}

// 过滤页面内容,插入广告
function insert_banner_ads_around_video_elements($page_content) {
    // 替换成你实际的横幅广告代码
    $banner_ad_html = '<div class="video-banner-ad" style="margin: 20px 0; padding: 15px; background-color: #f8f9fa; border-radius: 4px; text-align: center;">
                        <!-- 这里放你的广告代码,比如谷歌广告联盟代码或者自定义广告 -->
                        <p>📺 这是视频横幅广告</p>
                      </div>';

    // 正则匹配embed/iframe/object/video元素(支持多行标签)
    // 正则说明:
    // - <(embed|iframe|object|video)[^>]*> 匹配标签开头,包含所有属性
    // - .*? 非贪婪匹配标签内容
    // - <\/\2> 匹配对应的闭合标签(\2对应前面捕获的标签名)
    // - is 修饰符:i不区分大小写,s让.匹配换行符
    $target_elements_pattern = '/(<(embed|iframe|object|video)[^>]*>.*?<\/\2>)/is';

    // 在每个匹配到的元素**前面**插入广告,若要在后面加,改成 '$1' . $banner_ad_html 即可
    $modified_content = preg_replace($target_elements_pattern, $banner_ad_html . '$1', $page_content);

    return $modified_content;
}

关键细节说明

  • 输出缓冲的时机:用template_redirect钩子启动缓冲,确保能捕获到所有前台页面的输出内容,同时加了!is_admin()判断,避免影响后台管理界面。
  • 正则表达式调整:如果你的页面里有自闭合的embed或iframe(比如<iframe src="..." />),可以把正则改成/(<(embed|iframe|object|video)[^>]*\/?>)/is来匹配这种情况。
  • 广告样式控制:给广告容器加了video-banner-ad类,你可以在主题的CSS文件里自定义样式,比如调整间距、背景色等。
  • 缓存注意事项:如果你的网站用了缓存插件(比如WP Rocket、W3 Total Cache),修改代码后记得清空缓存,才能看到广告效果。

可选优化

如果你只想在特定页面(比如文章页)添加广告,可以在init_video_ad_buffer函数里再加一层判断,比如:

if (!is_admin() && is_single()) {
    ob_start('insert_banner_ads_around_video_elements');
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:08:41