Heartbeat API NOT disabling

时间:2017-09-17 作者:Mark Bowen

我希望这是一个很容易解决的问题,尽管从我的测试来看(WordPress非常新,所以如果这些测试不是很好,请与我一起轻松!)似乎不是。

我在SiteGround上托管了一个站点,它像没人管的那样消耗了CPU时间。

我现在已经设法将其归结为调用admin-ajax.php 文件太多了。

关于管理ajax的小问题。php如果可以的话?我的想法正确吗?只有在有人真正登录到控制面板的情况下,而不是在任何其他情况下(例如有人刚刚访问该站点),才会触发此文件

为此,我在互联网上找到了一些代码,如下所示:

add_action( \'init\', \'stop_heartbeat\', 1 );
function stop_heartbeat() {
wp_deregister_script(\'heartbeat\');
}
我读到这进入了functions.php 打开后,我的主题文件位于最顶部< ? 标签

我已经把它放在那里了,但是我很确定心跳APIstill 尽管如此,还是在跑步。

当一个用户正在编辑一篇文章,而另一个用户试图编辑它,并且他们收到一条消息警告其他人已经在编辑该文章时,心跳API是负责的,我的想法是否正确?

如果是这样的话,即使有了这段代码,并且有两个完全不同的用户在两个完全不同的浏览器上,我仍然会收到这些消息。

我在一个localhost 机器as目前不想干扰实时站点,但这是一个completely vanilla 安装(共个)WordPress 4.8.1 绝对没有插件或自定义主题被使用。只是2017年的标准主题。

所以我的问题是:

1–是否有可能关闭心跳API,或者是否存在无法关闭的已知问题?

2–如果它确实可以关闭,那么我做错了什么?

谢谢你在这方面的帮助。

致以最良好的祝愿,

做记号

1 个回复
SO网友:Rarst

我的想法正确吗?只有在有人真正登录到控制面板的情况下,而不是在任何其他情况下(例如有人刚刚访问该站点),才会触发此文件?

不,Ajax API用于任意请求,包括针对前端和未经身份验证的用户的请求。

当一个用户正在编辑一篇文章,而另一个用户试图编辑它,并且他们收到一条消息警告其他人已经在编辑该文章时,心跳API是负责的,我的想法是否正确?

虽然Heartbeat API是为这些函数实现的,但它更像是一个通用的通道,任何东西都可以在上面运行。

是否有可能关闭心跳API,或者它是一个已知的问题,实际上无法关闭?

据我记忆所及,禁用它异常困难,更重要的是以干净和兼容的方式禁用它。它还经历了几种方法,因此在线上的许多相关片段已经过时且不相关。如果现在有一个明智的方法关闭它,我不知道。

如果它确实可以关闭,那么我做错了什么?

不知道你是否做错了什么。这可能会更好地与托管支持部门讨论。可能是有什么事情把事情搞砸了,可能是您的需求(例如许多登录admin的用户)比您的计划要大。有趣的是,我自己也是SiteGround的长期用户,从未遇到过心跳API问题。

结束

相关推荐