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

WordPress:is_paged()在functions.php过滤函数中失效的求助

解决WordPress中is_paged()移除Rank Math头部动作失效的问题

你的问题核心是钩子挂载时机不对——is_paged()这类条件标签依赖WordPress主查询的初始化状态,如果函数挂在init这类过早的钩子上,此时分页状态还未被系统识别,自然无法触发移除逻辑。

修正方案

将函数挂载到template_redirect钩子,这个钩子会在WordPress完成主查询、确定要加载的模板后触发,所有条件标签(包括is_paged())都能正常返回结果:

function rankmath_disable_features() {
    // 单篇文章页面移除Rank Math头部动作
    if ( is_singular( 'post' ) ) {
        remove_all_actions( 'rank_math/head' );
    }
    // 分页页面移除Rank Math头部动作
    if ( is_paged() ) {
        remove_all_actions( 'rank_math/head' );
    }
}
add_action( 'template_redirect', 'rankmath_disable_features' );

替代方案:用wp_head钩子(需调整优先级)

如果更倾向于在页面头部阶段处理,只需把函数的优先级设得比Rank Math默认优先级(1)更高,确保在Rank Math添加动作之后执行移除操作:

add_action( 'wp_head', 'rankmath_disable_features', 2 );

快速验证方法

可以在函数中临时加入调试代码,确认is_paged()的返回值是否正确:

function rankmath_disable_features() {
    var_dump(is_paged()); // 查看分页状态是否被正确识别
    // 原有逻辑...
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 10:30:09