分享笔记:

WordPress 控制 admin-ajax 的使用

优化网站加载速度

WordPress一些插件会使用 AJAX 来启动自定义的 wp_query ,在无需完整刷新页面的情况下,显示某些内容。

什么是admin-ajax?

这个请求会发送到 WordPress 的特定 AJAX 文件,以执行这类查询:

https://你的域名/wp-admin/admin-ajax.php

不过有时这些查询会拖慢我们网站的加载时间,尤其是在多个请求同时进行时。这很常见,因为许多插件都使用这种方式来更新 WordPress 页面上的元素,例如:

WooCommerce 插件就是典型案例,广泛使用 admin-ajax.php

  • 添加商品到购物车
  • 修改商品数量
  • 选择商品变体
  • 切换支付方式
  • 输入送货地址以计算运费

其他插件的使用场景:

  • 在不刷新页面的情况下显示评论
  • 更新评分统计
  • 显示折叠菜单或手风琴效果
  • 根据分类筛选加载内容

admin-ajax 过度使用的影响

如果 admin-ajax.php 被大量调用,可能会导致一些不良后果:

怎么知道哪些元素在使用 ajax ?

要知道是 哪些插件、主题,甚至 WordPress 本身 在使用 admin-ajax.php,最简单的方法是使用浏览器的开发者工具(Developer Tools),在工具栏切换到“网络”选项卡(Network),在搜索框输入 admin-ajax.php,然后回车。

浏览器检测admin ajax

另外一种方法就是用像之前在WordPress加载速度优化里提到的那些检测网站速度的工具,像GTMetrix,不过它并不会告诉你具体是哪个东西在使用Ajax.

如何减少 admin-ajax.php 的滥用?

  1. 检查插件:禁用插件并检查 admin-ajax.php 的调用是否减少。如果某个插件消耗过多资源,看看它有没有设置选项可以减少 AJAX 请求。如果没有优化选项可以联系插件开发者或找替代插件,选择占用资源更少的。
  2. 检查主题:主题设置禁用任何不必要的动态加载功能(如无限滚动、动态内容加载等)。
  3. WooCommerce 优化:禁用 WooCommerce 在非必要页面的 AJAX 和 script 脚本(如非购物相关页面),禁用 AJAX 购物车碎片更新(cart fragments),这可以大幅减少 admin-ajax.php 负载。在 WooCommerce 产品设置可以选择关闭「启用 AJAX 添加到购物车按钮」,防止不必要的 AJAX 调用。
  4. 限制 WordPress Heartbeat API:建议完全禁用。Heartbeat API 主要用于后台自动保存草稿、同步数据等,限制其调用能减少服务器压力。
  5. 服务器优化(最后的选择):如果无法禁用相关插件或功能,可以升级服务器资源(提高 PHP 处理能力、增加缓存),以更好地支持 AJAX 请求。

为笔记评分

平均评分 5 / 5. 摘星者: 2

有疑问?留个言吧!

更多结果...

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
?>

更多结果...

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors