Ad Inserter 免费版不支持 series_group(系列类别)的排查与解决记录
背景
在使用 Ad Inserter 免费版时,我希望根据自定义分类法 系列类别(Series Group) 来显示不同的广告内容。例如,让“博客运营实践”系列类别下的所有文章显示专属 CTA,其他文章显示通用 CTA。
实际配置中遇到两个问题:
- Taxonomies 下拉列表搜索
series_group时结果不全。 - 手动填写
series_group:blog-management-practices规则不生效,专属 CTA 出现在不该出现的地方。
本文记录完整排查过程及最终解决方案。
一、现象:下拉列表搜索 series_group 只返回部分结果
在 Ad Inserter 的 Block 设置中,点击 Taxonomies 筛选框,输入 series_group 搜索,下拉列表只显示 3 条:
go-standard-lib-tourgo-standard-lib-tour-enblog-management-practices-en
缺少中文的 blog-management-practices。

实际上,后台系列类别列表共有 4 条记录(包括缺失的那条)。

查看浏览器网络请求(admin-ajax.php),响应内容中确实只返回了 3 条数据。

二、尝试:直接填写 series_group:blog-management-practices
因下拉列表找不到,我尝试手动输入规则:
series_group:blog-management-practices

保存后,发现该 Block 的 CTA 出现在了不属于该系列类别的文章中(如其他系列下的文章),说明规则未生效。

三、排查:数据库确认数据存在
为确认 blog-management-practices 记录完好,执行 SQL:
SELECT t.term_id, t.name, t.slug, tt.taxonomy, tt.count
FROM wp_terms t
INNER JOIN wp_term_taxonomy tt ON t.term_id = tt.term_id
WHERE tt.taxonomy = 'series_group' AND t.slug LIKE '%blog-management-practices%';
返回 2 条数据(中英文各一条),符合预期。数据库无问题。

后续还尝试了以下操作,问题依旧:
- 修改系列类别别名(截图5)

- 删除后重新添加系列类别(截图6)

- 将原有的 5 个系列重新关联到该类别(截图7)

四、最终发现:Ad Inserter 免费版不支持 series_group
反复验证后确认:Ad Inserter 免费版只支持普通的 series 分类,不支持 series_group(系列类别)。
series_group:xxx 这种写法不会被插件解析,因此规则无效。
五、解决方案:改用具体的 series 列表
既然不能用系列类别,就采用白名单方式,逐个列出该类别下的所有系列。
“博客运营实践”系列类别下包含 5 个系列:
wp-perf-noteswp-blog-multilingual-guide-zhblog-seo-logexploring-blog-business-modelsad-inserter-usage-notes
在 Ad Inserter 规则中填写(白名单):
series:wp-perf-notes,wp-blog-multilingual-guide-zh,blog-seo-log,exploring-blog-business-models,ad-inserter-usage-notes

保存后测试:这 5 个系列下的所有文章正确显示专属 CTA,其他文章显示通用 CTA。规则生效。

六、总结与经验
- 不要纠结下拉列表的显示不全
下拉列表可能因缓存、多语言插件(Polylang)等因素显示不全,但不影响手动输入规则。 - Ad Inserter 免费版不支持
series_group
如果需要使用系列类别筛选,请改用该类别下的具体系列(series:)列表。手动维护虽稍麻烦,但稳定可靠。 - 手动输入规则后不生效的常见处理
- 确认使用的字段是插件真正支持的(查阅官方文档)。
- 清空所有缓存(W3 Total Cache、浏览器缓存等)。
- 删除规则重新保存一次。
希望这篇记录能帮助遇到类似问题的朋友少走弯路。
附:环境信息
- WordPress 7.x
- Ad Inserter 免费版 2.8.x
- Polylang 多语言插件 3.8.x