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

如何在WordPress头部的PHP条件语句中正确包裹Google AdSense脚本(基于PaidMembership Pro插件)

正确实现PaidMembership Pro条件加载Google AdSense的方法

你遇到的问题很典型——在PHP代码块里直接写入HTML内容,PHP解析器无法识别这种混合写法,所以才会报错。我给你整理几种正确的写法,以及更符合WordPress规范的实现方式:

方法1:在PHP中用echo输出AdSense脚本

把HTML脚本通过echo输出,注意处理引号冲突(HTML里用了双引号,外层用单引号包裹即可):

<?php
if ( function_exists( 'pmpro_displayAds' ) && pmpro_displayAds() ) {
    echo '<script data-ad-client="ca-pub-111111111111111" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>';
}
?>

方法2:切换PHP/HTML模式

临时关闭PHP标签,直接编写HTML内容,之后再打开PHP标签闭合条件语句:

<?php if ( function_exists( 'pmpro_displayAds' ) && pmpro_displayAds() ) { ?>
    <script data-ad-client="ca-pub-111111111111111" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<?php } ?>

更推荐的方法:用WordPress规范的脚本加载方式

直接修改header.php有个隐患——主题更新后你的自定义代码会被覆盖。更稳妥的做法是在主题的functions.php里添加代码,通过WordPress官方的脚本加载API实现条件加载:

function load_pmpro_adsense() {
    // 检查PMPro函数存在且需要显示广告
    if ( function_exists( 'pmpro_displayAds' ) && pmpro_displayAds() ) {
        wp_enqueue_script(
            'google-adsense',
            'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js',
            array(), // 无依赖脚本,留空即可
            null, // 版本号,无需指定
            false // 是否在footer加载,AdSense放header选false
        );
        // 给脚本添加data-ad-client属性
        add_filter( 'script_loader_tag', function( $tag, $handle ) {
            if ( 'google-adsense' !== $handle ) {
                return $tag;
            }
            return str_replace( ' src', ' data-ad-client="ca-pub-111111111111111" async src', $tag );
        }, 10, 2 );
    }
}
add_action( 'wp_enqueue_scripts', 'load_pmpro_adsense' );

额外注意事项

  • 确认pmpro_displayAds()的返回逻辑:这个函数应该在非会员用户访问时返回true,会员访问时返回false,才能实现会员隐藏广告的效果。如果逻辑相反,你可以把条件改成!pmpro_displayAds()。
  • 测试时记得切换会员和非会员账号,验证广告是否正确显示/隐藏。
  • 如果一定要修改header.php,建议使用子主题,避免主题更新丢失自定义内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 07:12:48