什么时候可以获得当前页面ID并在之后立即初始化钩子?

时间:2015-08-28 作者:Danil Solodunov

我正在开发一个插件,需要知道用户在什么页面上,然后为该页面添加特定的挂钩和过滤器<我的问题是is_page()the_ID() 在外部不起作用wp, wp_loaded, init 操作,但如果我使用这些操作,则无法初始化挂钩,因为要使它们正常工作,必须在这些操作之前添加它们<所以我的问题是,我能给巫婆打电话吗the_ID(), 获得适当的结果and then 为该页面添加其他挂钩?还是有可能only 使用PHP$_SERVER[\'REQUEST_URI\']?

1 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

获取帖子信息的最早安全挂钩是template_redirect 钩所有相关的钩子都是在Wordpress设置postdata之前运行的,因此此时任何帖子信息仍然不可用。

全球人喜欢$wp_query$post 仍然不包含任何数据,这就是为什么您的努力一无所获。

根据@TheDeadMedic的评论编辑额外信息

实际上wp 是一个早期的,仍然安全的钩子-只需确保使用get_queried_object()而不是依赖$post全球