在发送报头之前检测404 时间:2013-05-02 作者:Tom J Nowell 我有一段代码,在用户第一次访问时显示横幅,然后设置一个cookie,防止再次显示。但是,如果页面有404错误,则请求的资源的404页面将设置cookie,并且不会显示横幅。正在检查is_404() 在init钩子上不能避免这种情况。那么,如何纠正这个问题并检测init挂钩上的404呢? 1 个回复 最合适的回答,由SO网友:Johannes Pille 整理而成 使用以后不能使用的动作挂钩Conditional Tags 在posts_selection hook已经运行(根据codex),这发生在pre_get_posts 之后很久init.因此,在请求的稍后阶段设置cookie,而不是尝试更早地检测404,这难道不容易吗(我不知道怎么做)?这个wp 例如,行动应该足够早如果我理解正确,您基本上应该能够在请求的最后设置cookie,因为它只与以下请求相关。[进一步信息]条件标记是如何工作的条件标记取决于查询对象的(实例WP_Query) 公共“查询类型”布尔属性,默认设置为false (参见wp-includes/query.php, Lines 1008 ff. [as of 3.5.1]).这些属性使用中的正确值填充WP_Query\'sparse_query 方法,该方法在pre_get_posts (参见wp-includes/query.php, Lines 1907 ff. [as of 3.5.1]).因此,尽管《法典》提出了不同的建议,但条件标签实际上已经可以在pre_get_posts 回调但肯定不会更早-init 这是不可能的。 结束 文章导航