Polylang第二语言环境下自定义归档模板显示文章而非页面内容问题
问题成因分析
- 你的模板是页面类型模板(通过
/* Template Name: Archive Page Custom */声明),但被用于归档页面场景,Polylang对页面与归档页面的查询逻辑存在差异:- 主语言环境下,主查询仍匹配到了该模板绑定的页面对象,所以
while (have_posts())循环输出的是页面自身的the_content(),表现正常。 - 切换至第二语言后,Polylang会自动调整主查询的语言参数,此时归档页面的主查询不再指向对应翻译页面,而是触发了归档文章的默认查询逻辑,
have_posts()开始遍历当前语言下的所有归档文章,最终出现循环展示文章的异常。
- 主语言环境下,主查询仍匹配到了该模板绑定的页面对象,所以
- 额外原因:模板未明确指定查询对象,完全依赖WordPress主查询,而Polylang的语言切换会修改主查询的参数规则,导致主查询的查询目标发生偏移。
内容的提问来源于stack exchange,提问作者in2d
相关产品推荐
相关产品推荐

