插件支持
彼得
(@wizzard_)
嗨,彼得!
通常这种行为不应该发生。你在我们的插件上使用什么设置?你能在禁用所有其他插件时检查问题是否仍然存在吗?
你好!不幸的是,这是我们插件中的一个长期存在的错误,它与PHP缓冲区大小有关,通常是由插件在加载过程中过早发送输出引起的。一些网站体验到了这一点,而另一些则没有——这一切都归结为网站的复杂设置。让我试着解释一下:
我们在WP加载周期中很晚才设置缓存头,这是因为我们需要解析当前的帖子,以查看是否应该真正缓存它。不幸的是,一些插件/主题在加载过程的早期就输出了数据——可以是空白、标记或错误消息中的任何内容。在许多情况下,此输出将超过PHP缓冲区大小,这再次导致提前发送头,因为头将是HTTP响应的第一部分。这再次导致我们行动太晚,然后无法设置正确的缓存标头。
不幸的是,调试起来有点棘手。一种解决方案是增加PHP缓冲区大小,但最好的解决方案是在WP开始打印实际的模板标记之前找出导致此输出的原因。一种方法是逐个停用插件,看看“headers already sent”消息何时消失。如果插件停用后错误仍然存在,我会在其他地方检查,可能是主题、mu-plugins,甚至可能尝试重新安装WordPress。我希望这能有所帮助,我衷心希望我们能有一个更好的解决方案,但WordPress的结构方式让它有点困难。
谨致问候
Servebolt的Robert