什么是WordPress心跳?
WordPress从3.6版本开始引入了Heartbeat API(心跳API)。这项功能允许您的浏览器在您登录WordPress管理面板时,与服务器进行实时通信。它就像网站和服务器之间建立了一条“心跳线”,定期发送信号,以保持连接和同步数据。
Heartbeat API主要功能:
- 实时协作: 最常见的用途是当多位作者同时编辑一篇文章时,Heartbeat API可以显示其他作者正在编辑该文章的提示,避免内容冲突。
- 实时通知: 插件可以利用Heartbeat API的脚本执行,向您实时推送通知,例如新的评论、订单更新等。
- 自动保存: 在文章编辑界面,Heartbeat API也负责触发自动保存功能,防止数据丢失。
- 会话管理: 保持后台会话活跃,防止因长时间不操作而自动登出。
Heartbeat API可能带来的问题:
尽管Heartbeat API功能强大且实用,但在某些情况下,它也可能带来一些问题:
- 增加服务器负载: Heartbeat API会在不同页面以不同的频率进行检查。例如,在文章编辑页面,它每15秒发送一次请求;在仪表盘页面,它每分钟发送一次请求。每次“心跳”都会生成一个POST请求,这会增加服务器的执行次数和CPU占用时间。
admin-ajax.php请求量大: Heartbeat API通过wp-admin/admin-ajax.php文件进行AJAX调用。如果您发现admin-ajax.php文件发出的POST请求数量异常多,这通常意味着Heartbeat API正在消耗大量服务器资源。
过多的admin-ajax.php请求是导致WordPress网站后端速度变慢的常见原因之一,尤其是在管理面板中。这里主题铺分享一下在SiteGround主机下优化与设置WordPress心跳图文教程。
如何控制WordPress Heartbeat API:
根据您的网站需求和服务器资源情况,您可以选择完全禁用Heartbeat API,或者限制其执行频率。
方法一:完全禁用Heartbeat API
在大多数情况下,如果您是网站的唯一管理员,或网站没有特别依赖Heartbeat API的实时协作或通知功能,那么完全禁用它可以有效减轻服务器负担。
编辑主题的functions.php文件:
登录您的WordPress管理后台。
导航到“外观”(Appearance)>“主题文件编辑器”(Theme File Editor)。
在右侧文件列表中找到并点击您当前使用主题的functions.php文件。
在文件的开头(紧随<?php标签之后),粘贴以下代码:
add_action( 'init', 'stop_heartbeat', 1 );
function stop_heartbeat() {
wp_deregister_script('heartbeat');
}主题铺建议: 最好使用子主题进行此操作,以避免主题更新时代码被覆盖。
保存更改: 点击“更新文件”按钮保存functions.php的更改。
此操作将彻底禁用Heartbeat API功能,从而不再增加您的账户执行次数和CPU使用时间。
更简单的替代方法:使用优化插件
一些主机提供商(如SiteGround的Site Tools中的Speed Optimizer)或WordPress优化插件(如WP Rocket、Perfmatters等)通常会内置Heartbeat API的优化选项。您可以在这些工具的“环境”(Environment)或“性能”(Performance)选项卡中,找到Heartbeat Optimization(心跳优化)设置,并通过简单的界面操作来禁用或限制它。
方法二:限制Heartbeat API的执行频率
如果您需要Heartbeat API的某些功能,但又想减少其资源消耗,可以通过限制其执行频率来实现。
使用优化插件(推荐):
许多性能优化插件(如如SiteGround的Site Tools中的Speed Optimizer)都提供了Heartbeat API的频率控制选项。
![图片[1]-深入了解WordPress Heartbeat API 优化与设置WordPress心跳图文教程-主题铺](https://cdn.zhutipu.com/wp-content/uploads/2025/08/20250817111406190.jpg/ztp)
在插件的设置界面中,您可以针对不同的位置(例如:WordPress仪表盘、文章/页面编辑界面、前端)设置不同的心跳频率,或者选择在该位置禁用Heartbeat。
通过下拉菜单选择您希望的执行频率(例如,从15秒改为60秒、90秒等),然后保存设置。
手动代码(高级用户):
如果您不想使用插件,也可以通过代码来限制Heartbeat API的频率。将以下代码添加到您的子主题的functions.php文件中:
add_filter( 'heartbeat_send_interval', 'my_heartbeat_interval' );
function my_heartbeat_interval( $interval ) {
// 将心跳间隔设置为60秒(默认是15秒)
return 60;
}
// 针对特定位置限制,例如只在仪表盘和前端限制
add_action( 'admin_init', 'my_limit_heartbeat_locations' );
function my_limit_heartbeat_locations() {
if ( ! is_admin() ) { // 前端
wp_deregister_script('heartbeat');
}
// 对于仪表盘,可以通过上述filter调整频率
}主题铺提醒: 这段代码仅为示例,实际使用时需要根据您的需求和对代码的理解进行调整。
最后总结
Heartbeat API是WordPress提供的一项有益功能,但其默认设置在高流量网站上可能导致性能问题。通过完全禁用或限制其执行频率,您可以有效降低服务器负载,提升网站后台的响应速度。选择哪种优化方式取决于您的网站需求和对实时协作功能的依赖程度。在进行任何代码修改前,务必备份您的网站,以防万一。

















暂无评论内容