WordPress如何编写代码阻止特定用户角色加载AdSense头部代码
WordPress针对订阅者角色禁用AdSense广告代码实现
核心逻辑调整
原参考代码的逻辑是为订阅者、未登录用户展示广告,你需要的逻辑恰好相反,只需将判断条件取反,实现仅非订阅者用户加载AdSense头部代码即可。
调整后可用代码
基础版(可直接插入header.php模板)
<?php if ( !current_user_can( 'subscriber' ) ) { echo '<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-XXXXXXXXXXXXX" crossorigin="anonymous"></script>'; } ?>
规范版(推荐添加到functions.php文件)
符合WordPress开发规范,无需修改主题模板文件:
add_action( 'wp_head', 'custom_adsense_hide_for_subscriber', 10 ); function custom_adsense_hide_for_subscriber() { // 非订阅者角色才输出广告代码 if ( !current_user_can( 'subscriber' ) ) { echo '<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-XXXXXXXXXXXXX" crossorigin="anonymous"></script>'; } }
使用说明
- 代码中的
ca-pub-XXXXXXXXXXXXX请替换为你自己的AdSense客户端ID - 若需要同时对多个角色禁用广告,可在判断条件中追加对应角色的判断,例如同时屏蔽订阅者和投稿者,条件修改为
if ( !current_user_can( 'subscriber' ) && !current_user_can( 'contributor' ) ) - 添加代码后请清空站点缓存,分别用订阅者账号、其他角色账号、未登录状态访问验证效果
内容的提问来源于stack exchange,提问作者ibrahim shazly
相关产品推荐
相关产品推荐

