解决 WordPress 后台仪表盘慢问题

问题:WP 后台一进去就转圈 10 秒

WordPress 后台仪表盘(/wp-admin)默认会调用两个国外服务:

  • api.wordpress.org/core/version-check —— 检查 WP 版本
  • api.wordpress.org/core/browse-happy —— 检查浏览器版本

这俩服务在国内访问大概率超时(api.wordpress.org 国内访问不稳),每个超时 5 秒,加起来仪表盘要等10 秒才能完全加载。

麻烦在于:没有插件能彻底关掉它们。两个调用函数都在 WP 核心代码里,通过 hook 关闭只能"部分屏蔽",彻底解决需要手动改 PHP 文件。

解决方法:改两个 WP 核心文件

下面两个函数,加几行 return 让它立刻返回,不走网络请求。

1. 关闭 PHP 版本检查

函数:wp_check_php_version

wp_check_php_version

这个函数判断你的 PHP 版本是否需要更新。但即使你 hook 它,它也会先访问一次 api.wordpress.org(WP 的设计缺陷)。所以必须直接改函数返回。

文件位置:

wp-admin/includes/misc.php

修改:在 function wp_check_php_version() 函数体最顶部直接加一行:

return true;

这样函数立即返回 true,不再发任何 HTTP 请求。

解决 WordPress 后台仪表盘慢问题

2. 关闭浏览器版本检查

函数:wp_check_browser_version

wp_check_browser_version

这个函数没有 hook 可以拦截,只能直接改源代码。

文件位置:

wp-admin/includes/dashboard.php

修改:在 function wp_check_browser_version() 函数体最顶部加一行:

return false;

解决 WordPress 后台仪表盘慢问题

效果

改完两个文件后重新登录 wp-admin,仪表盘加载时间从 10 秒+ 降到1 秒以内

更优雅:用 mu-plugin 拦截

直接改 WP 核心文件的坏处:WP 升级后会被覆盖,要重新改一次。每次升级都要记得,容易漏。

更稳的方案:用 mu-plugin(must-use plugin)拦截这两个函数的网络请求。虽然不能彻底"短路"函数,但可以让网络请求秒返回失败,效果一样。

创建文件 wp-content/mu-plugins/disable-version-check.php:

<?php
/**
 * Plugin Name: Disable Slow WP API Calls
 * Description: 短路 WP 核心对 api.wordpress.org 的请求,加速后台
 */

if (!defined('ABSPATH')) exit;

// 拦截所有对 api.wordpress.org 的请求
add_filter('pre_http_request', function ($preempt, $args, $url) {
    if (strpos($url, 'api.wordpress.org') !== false) {
        // 立即返回伪造的"成功"响应,不发真请求
        return [
            'headers'  => [],
            'body'     => '{}',
            'response' => ['code' => 200, 'message' => 'OK'],
            'cookies'  => [],
            'filename' => null,
        ];
    }
    return $preempt;
}, 10, 3);

// 关掉自动更新检查
add_filter('pre_site_transient_update_core',    '__return_zero');
add_filter('pre_site_transient_update_plugins', '__return_zero');
add_filter('pre_site_transient_update_themes',  '__return_zero');

这个 mu-plugin 自动加载,WP 升级不会覆盖(mu-plugins/ 目录不归 WP 管)。文件命名随意,只要 .php 后缀。

顺便:其他 WP 后台慢的常见原因

除了 API 检查,还有几个常见拖慢后台的因素:

1. Gravatar 头像加载

WP 评论 / 用户列表会调 secure.gravatar.com 拿头像,国内访问也慢。屏蔽 / 走镜像:

// 用本地默认头像替代 Gravatar
add_filter('pre_get_avatar_data', function ($args, $id_or_email) {
    $args['url'] = 'https://your-site.com/wp-content/default-avatar.png';
    return $args;
}, 10, 2);

// 或者走 Gravatar 镜像
add_filter('get_avatar_url', function ($url) {
    return str_replace('secure.gravatar.com', 'cravatar.cn', $url);
});

2. Google Fonts

WP 默认主题、Gutenberg 编辑器会调 Google Fonts。换 fonts.googleapis.com 到国内镜像(fonts.loli.net / fonts.geekzu.org)。

3. Heartbeat API 频率

WP 后台每 15 秒会发一个 heartbeat 请求,检查自动保存等。如果服务器响应慢,这个也卡。可以延长间隔:

add_filter('heartbeat_settings', function ($settings) {
    $settings['interval'] = 60; // 默认 15,改成 60 秒
    return $settings;
});

4. 启用 Object Cache(Redis / Memcached)

每次后台请求 WP 都会查几十次 options 表,如果用 Redis Object Cache 插件接管,速度提升明显。装方法搜"Redis Object Cache plugin"。

一句话总结

WP 后台慢的主要原因是访问国外服务超时,改两个核心文件 + 装个 mu-plugin 拦截,后台速度立刻起飞。配合 Redis Object Cache,WP 后台体验能跟海外 SaaS 媲美。

—— 别看了 · 2026
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理 邮箱1846861578@qq.com。
技术教程

VuePc适配设置元素缩放比例

2024-12-10 18:39:06

技术教程

Python批量扫未注册域名源码

2025-2-6 14:48:50

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索