原因
因为WordPress的自动更新让我非常困扰,会让新版本和当前使用的主题不兼容导致出现问题
所以自己做了一个简单的WordPress停止更新插件
插件代码
1. 创建插件文件夹和文件
在你的 WordPress 根目录的 wp-content/plugins/ 下:
-
新建一个文件夹,比如
disable-auto-updates -
在文件夹里新建一个 PHP 文件,文件名和文件夹同名,比如
disable-auto-updates.php
2. 写入完整插件代码
打开 disable-auto-updates.php,粘贴以下代码:
<?php
/**
* Plugin Name: 禁用自动更新
* Plugin URI: https://example.com
* Description: 完全禁用 WordPress 核心、插件、主题、翻译的自动更新。
* Version: 1.0
* Author: 你的名字
* Author URI: https://example.com
* License: GPLv2 or later
*/
// 防止直接访问
if (!defined('ABSPATH')) {
exit;
}
// 禁用核心自动更新(必须在 wp-config.php 中设置,插件中无效)
// 注意:核心禁用仍需要在 wp-config.php 中添加 define('WP_AUTO_UPDATE_CORE', false);
// 但为了提醒,我们在插件激活时检查一下
add_action('admin_notices', function() {
if (!defined('WP_AUTO_UPDATE_CORE') || WP_AUTO_UPDATE_CORE !== false) {
echo '<div class="notice notice-warning"><p><strong>提示:</strong> 核心自动更新未完全禁用。请在 <code>wp-config.php</code> 中添加 <code>define(\'WP_AUTO_UPDATE_CORE\', false);</code></p></div>';
}
});
// 禁用插件自动更新
add_filter('auto_update_plugin', '__return_false');
// 禁用主题自动更新
add_filter('auto_update_theme', '__return_false');
// 禁用翻译自动更新
add_filter('auto_update_translation', '__return_false');
// 额外:禁用大版本、小版本自动更新(可选,但核心禁用后一般不需要)
// add_filter('allow_minor_auto_core_updates', '__return_false');
// add_filter('allow_major_auto_core_updates', '__return_false');
3. 启用插件
-
进入 WordPress 后台 → 插件 → 已安装的插件
-
找到 “禁用自动更新”(你刚创建的插件)
-
点击 “启用”
重要:核心禁用仍需在 wp-config.php 中设置
因为插件的加载时间晚于 wp-config.php,所以 define('WP_AUTO_UPDATE_CORE', false); 必须 放在 wp-config.php 中,插件无法替代。
但上面的插件会在后台给出一个提醒(如果你忘记加的话)。
核心禁用:在 wp-config.php 中加一行
记住位置应该放在
define( 'WP_DEBUG', false );
/* Add any custom values between this line and the "stop editing" line. (必须在这之后)*/
增加的代码放在这里
/* That's all, stop editing! Happy publishing. (必须在这之前)*/
增加的代码为
/**禁用自动更新*/
define('WP_AUTO_UPDATE_CORE', false);
插件/主题/翻译禁用:使用上面制作的插件,并在后台启用
这样:
-
所有自动更新完全关闭
-
换多少次主题都不影响
-
插件可以随时停用(比如临时需要自动更新某个插件)
-
不需要安装其他臃肿的管理插件(如 Easy Updates Manager)
但核心禁用无法通过插件完全实现(因为执行顺序限制)。
所以:
-
在
wp-config.php中保留核心禁用 -
插件只负责其他三项
这是最干净的做法。