如何实现仅当文章URL带分页数字时才显示AdSense广告
WordPress文章分页差异化展示AdSense广告实现方案
你原有代码无法生效有两个核心原因:一是is_post_url()不是WordPress原生提供的函数,本身无法正常执行;二是判断逻辑完全没有覆盖分页页码识别、按页码梯度展示广告的需求。
逻辑规则对齐需求
- 无分页后缀的文章首页(第1页,URL格式
domain.com/post-slug):不加载任何广告 - 第2页及以后的分页文章(URL格式
domain.com/post-slug/2、domain.com/post-slug/3等):加载基础广告位 - 第3页及以后的分页:额外加载更多广告位,页码越靠后可按这个判断逻辑继续追加广告位块
可直接替换使用的完整代码
直接替换你原有整段广告判断代码即可,不需要额外修改其他文件:
<?php // 获取当前文章内分页页码,非分页页面默认值为1 $current_pagination = get_query_var('page') ?: 1; // 仅非第一页时输出广告 if ($current_pagination > 1): ?> <div id="baseAd"> <!-- 此处粘贴你的基础AdSense广告代码,所有分页页通用展示 --> </div> <?php // 页码≥3时输出额外广告位,需要更多梯度可自行调整判断阈值 if ($current_pagination >= 3): ?> <div id="extraAd" class="mt-30"> <!-- 此处粘贴你要追加的AdSense广告代码,仅3页及以后展示 --> </div> <?php endif; endif; ?>
兼容性说明
- 该判断逻辑兼容WordPress所有官方支持的固定链接结构,不管你的分页格式是
/2还是/page/2都可以正常识别,不需要写正则匹配URL - 原有代码里
if(!is_post_url());末尾多余的分号会导致判断逻辑和后续HTML块解绑,哪怕函数可用也会出现广告乱展示的问题,写PHP判断时要注意这类语法错误 - 如果需要给更高页码加更多广告位,只需要继续追加
if($current_pagination >= 页码数)的判断块即可,不需要修改核心逻辑
内容的提问来源于stack exchange,提问作者ilies dolamove
相关产品推荐
相关产品推荐

