You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WordPress插件中判断当前是否为post_type page的分类归档页

原因说明

is_category() 属于WordPress的条件标签,依赖已初始化完成的全局主查询才能返回正确结果。插件的加载时机早于WordPress主查询初始化流程,直接在插件全局作用域调用该方法必然返回错误值,并非该方法仅能在主题中使用。

实现方案

将判断逻辑挂载到主查询初始化完成的钩子(如template_redirect、wp)中执行即可,示例代码如下:

// 挂载到template_redirect钩子,此时路由解析、主查询均已完成
add_action('template_redirect', 'custom_check_category_archive');
function custom_check_category_archive() {
    // 同时判断:当前为分类归档页,且归档对应的文章类型为page
    if (is_category() && get_queried_object()->post_type === 'page') {
        // 替换为你需要执行的业务逻辑
        do_this();
    }
}
补充说明
  • 如果你要判断的是自定义分类法的归档页,将is_category()替换为is_tax('你的自定义分类法别名')即可
  • 所有WordPress前端条件标签在插件中调用时,都需要挂载到上述后置钩子上才能正常生效
  • 也可以直接读取全局主查询属性$GLOBALS['wp_query']->is_category进行判断,返回值和is_category()完全一致

预期实现流程示意图

内容的提问来源于stack exchange,提问作者Nadal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 06:45:03