是的,这个错误通常是因为你的 WordPress 网站在尝试连接 api.wordpress.org 获取更新、插件信息或主题信息时失败了(可能是网络限制、防火墙、代理设置或 DNS 问题)。如果你不需要自动更新功能,或者你是在本地开发环境(如 MAMP、XAMPP)中运行 WordPress,可以完全禁止 WordPress 连接到官方服务器。
✅ 解决方案:禁止 WordPress 连接 WordPress.org
只需在你的主题的 functions.php 文件(推荐使用子主题)或者在自定义插件中添加以下代码:
// 禁止 WordPress 连接 WordPress.org
add_filter('pre_http_request', function($preempt, $r, $url) {
if (strpos($url, 'wordpress.org') !== false || strpos($url, 'wp.org') !== false) {
return true; // 返回 true 表示跳过该请求
}
return $preempt;
}, 10, 3);
⚠️ 注意:这段代码会拦截所有发往
wordpress.org或wp.org的 HTTP 请求,包括自动更新、插件/主题目录查询、语言包下载等。
🔧 其他可选方法(更彻底)
方法一:在 wp-config.php 中禁用所有更新
在 wp-config.php 文件中加入以下常量:
// 禁用所有自动更新
define('AUTOMATIC_UPDATER_DISABLED', true);
// 禁用 WordPress 核心、插件、主题和翻译的更新
define('WP_AUTO_UPDATE_CORE', false);
add_filter('auto_update_plugin', '__return_false');
add_filter('auto_update_theme', '__return_false');
add_filter('auto_update_translation', '__return_false');
// 阻止 WordPress 发起外部 HTTP 请求(可选,但可能影响其他插件)
define('WP_HTTP_BLOCK_EXTERNAL', true);
// 如果你仍需要允许某些域名(比如你自己用的 API),可以加白名单:
// define('WP_ACCESSIBLE_HOSTS', 'your-api.com,another-domain.com');
💡
WP_HTTP_BLOCK_EXTERNAL是最彻底的方式,但要小心:它会阻止 所有 外部 HTTP 请求(不只是 WordPress.org),可能会影响一些依赖外部 API 的插件(如社交媒体、支付网关等)。
🛠 推荐做法(平衡安全与功能)
如果你只是想解决错误提示,又不想影响其他功能,优先使用第一种方法(pre_http_request 过滤器),因为它只针对 wordpress.org 域名,不会影响其他外部服务。
📌 补充说明
- 错误出现在
/wp-includes/update.php on line 730,说明是 WordPress 在检查更新时出错。 - 在本地开发环境中,这类连接通常是不必要的。
- 如果你在生产环境,建议排查服务器能否正常访问
https://api.wordpress.org(例如用curl或ping测试),而不是直接禁用连接。
0 条评论