
本文介绍如何仅在 WordPress 分页式分类(category)和标签(tag)归档页的第 2 页及后续页面中隐藏 .clr.tax-desc 描述区块,同时保留首页(第 1 页)的显示,推荐使用 PHP 条件判断结合模板逻辑实现精准控制。
本文介绍如何仅在 wordpress 分页式分类(category)和标签(tag)归档页的第 2 页及后续页面中隐藏 `.clr.tax-desc` 描述区块,同时保留首页(第 1 页)的显示,推荐使用 php 条件判断结合模板逻辑实现精准控制。
在 WordPress 主题开发中,许多主题会在分类(category)或标签(tag)归档页顶部渲染一个包含描述信息的 <div class="clr tax-desc"> 区块(通常由 <code>term_description() 输出)。但默认情况下,该区块会在所有分页(如 /category/news/page/2/)中重复出现,而实际需求往往是:仅在第 1 页显示描述,后续分页页完全隐藏。
直接通过 CSS 隐藏(如 .entry-meta { display: none; })虽简单,但属于“粗粒度屏蔽”,无法区分页码,且可能误杀其他同名元素,不符合语义化与可维护性要求。更专业、可靠的方案是在模板层进行条件判断,从源头控制输出逻辑。
✅ 推荐做法:修改归档模板中的描述输出逻辑
请定位到主题中的归档模板文件(通常是 archive.php 或 category.php / tag.php),查找类似以下代码段:
<?php if (is_tax() || is_category() || is_tag()) : ?><div class="clr tax-desc">
<?php echo term_description(); ?>
</div>
<?php endif; ?>
将其替换为带分页判断的条件逻辑:
使用tbot机器ID身份文件配合tsh CLI,通过Teleport访问控制SSH登录托管主机或执行远程命令。
<?php // 仅在非分页归档页(即第 1 页)显示 taxonomy 描述
if ((is_tax() || is_category() || is_tag()) && !is_paged()) :
?><div class="clr tax-desc">
<?php echo term_description(); ?>
</div>
<?php endif; ?>
? 关键说明:
is_tax()覆盖自定义分类法(如product_cat),is_category()和is_tag()分别对应内置分类与标签;!is_paged()确保仅当当前为归档页第 1 页时执行输出;- 此写法兼容所有标准归档类型,且不影响 SEO(描述内容仍存在于首页 HTML 中)。
⚠️ 注意事项
-
勿修改
functions.php中的term_description()输出钩子:强行用remove_filter()或add_filter()干预会导致全局失效,违背“按需显示”初衷; -
避免依赖 CSS 隐藏替代逻辑:
.clr.tax-desc { display: none; }会隐藏所有页码的该区块,无法满足“仅隐藏分页页”的需求; -
检查主题是否使用
get_term_by()或缓存机制:若描述内容被提前获取并赋值给变量,请同步调整变量输出条件; - 子主题优先原则:务必在子主题中修改模板文件,防止主题更新后丢失改动。
✅ 总结
精准控制 WordPress 归档页描述区块的显示逻辑,核心在于将 !is_paged() 作为模板级输出开关。该方案轻量、语义清晰、兼容性强,且完全遵循 WordPress 模板层级规范。实施后,您将获得干净的分页体验:首页保持描述可见以增强内容上下文,而第 2 页起则专注列表展示,提升用户体验与页面性能。










