当您的短代码在the_content
钩子(通常)主查询已执行pre_get_posts
钩子已为主查询激发,并且template_redirect
胡克开火了。
你将无法template_redirect
或者更改主查询(如果需要的话),而不以某种方式使您的短代码比通常的短代码运行得更早,这意味着在pre_get_posts
挂钩回调,甚至更早,这取决于您尝试执行的操作的详细信息。
这可能意味着检索帖子(您在pre_get_posts
阶段),分析短代码,然后使用查询更改再次检索帖子。这是一个相当沉重的负担。
在我看来,您似乎在尝试使用短代码来实现一个功能,而它们并不是真正想要实现的功能。短代码是一种类似于BB代码的内容格式化和显示功能,而不是改变循环和重定向功能。
如果你解释你想要的结果,而不是问如何实现一个特定的解决方案,也许你会有更好的运气。