
本文讲解如何在 WordPress 中精准控制 Google AdSense 广告的显示逻辑:仅在文章分页的第 2 页(/page/2/)、第 3 页(/page/3/)等后续页面展示广告,而首页(即 / 或 /page/1/)完全隐藏,避免影响首屏体验与广告政策合规性。
本文讲解如何在 wordpress 分页中精准控制 google adsense 广告的显示逻辑:仅在文章分页的第 2 页(`/page/2/`)、第 3 页(`/page/3/`)等后续页面展示广告,而首页(即 `/` 或 `/page/1/`)完全隐藏,避免影响首屏体验与广告政策合规性。
在 WordPress 主题模板(如 single.php 或 archive.php)中,若需实现「仅当 URL 包含 /page/N/ 且 N ≥ 2 时才加载广告」,关键在于准确获取当前分页序号。WordPress 提供了标准函数 get_query_var('paged') 来安全读取分页参数,它兼容主循环、自定义查询及各种 permalink 结构(包括 /top-10-foods/2/ 这类伪静态路径)。
✅ 正确实现方式如下:
安全的随机密码生成器。支持自定义长度、字符类型(大写/小写字母、数字、特殊符号),排除相似字符,批量生成。纯 Python 标准库,无需 API 密钥。
<?php
// 获取当前分页号:首页为 1,第二页为 2,以此类推
$pageNum = (int) get_query_var('paged');
if ($pageNum === 0) {
// 首页(非分页状态,如 /top-10-foods/)默认视为第 1 页
$pageNum = 1;
}
// 仅在第 2 页及以后显示广告
if ($pageNum > 1) : ?>
<div id="myAd" class="ad-unit">
<!-- 此处插入您的 AdSense 代码或异步加载逻辑 -->
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-XXXXXXXXXXXXXXXX"
data-ad-slot="YYYYYYYYYY"
data-ad-format="auto"
data-full-width-responsive="true"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
<?php endif; ?>⚠️ 注意事项:
- 不要使用 is_post_url() —— 该函数并不存在于 WordPress 核心,是常见误写,会导致 PHP 致命错误;
- get_query_var('paged') 在首页(无 /page/1/)返回 0,因此需显式归一化为 1,确保逻辑统一;
- 若主题启用了「静态首页」或使用了 WP_Query 自定义查询,请确保在正确上下文中调用(例如在主循环内,或为自定义查询显式传递 'paged' => get_query_var('paged'));
- 建议为广告容器添加语义化 class(如 ad-unit)并配合 CSS 控制布局,避免因广告加载延迟导致页面跳动(CLS 问题);
- 遵循 Google AdSense 政策:单页广告位不宜过多,且不得在用户未滚动即触发的首屏核心内容区强制插入广告。
? 扩展提示:如需进一步精细化控制(例如排除特定分类、仅对某类文章启用),可组合 is_single()、has_term() 或自定义字段判断,实现更灵活的广告策略。始终在子主题中修改模板,并通过浏览器开发者工具验证 window.location.pathname 与实际 $pageNum 值是否匹配,确保逻辑生效。

















