一、关闭WordPress核心自动更新

方法1:修改wp-config.php文件

在网站根目录的wp-config.php文件中添加以下代码:

// 彻底关闭所有自动更新
define( 'AUTOMATIC_UPDATER_DISABLED', true );

// 或者单独控制不同类型的更新
define( 'WP_AUTO_UPDATE_CORE', false );  // 关闭核心自动更新
// define( 'WP_AUTO_UPDATE_CORE', true );   // 开启所有核心更新(包括大版本)
// define( 'WP_AUTO_UPDATE_CORE', 'minor' ); // 仅开启小版本安全更新

方法2:使用过滤器(添加到主题的functions.php)

// 关闭所有自动更新
add_filter( 'automatic_updater_disabled', '__return_true' );

// 关闭核心更新邮件通知
add_filter( 'auto_core_update_send_email', '__return_false' );

// 关闭自动更新邮件通知
add_filter( 'automatic_updates_send_debug_email', '__return_false' );

二、关闭插件自动更新

方法1:代码方式(添加到functions.php)

// 关闭插件自动更新
add_filter( 'auto_update_plugin', '__return_false' );

// 或者根据条件判断(示例:仅关闭特定插件)
add_filter( 'auto_update_plugin', function($update, $item) {
    // 如果想要特定插件不自动更新,可以在这里判断
    // if ( $item->slug === 'plugin-slug' ) return false;
    return false;  // 全部关闭
}, 10, 2 );

方法2:数据库层面关闭

WordPress 5.5+版本引入了插件自动更新选项,存储在wp_options表的auto_update_plugins字段中。

三、关闭主题自动更新

代码方式(添加到functions.php)

// 关闭主题自动更新
add_filter( 'auto_update_theme', '__return_false' );

// 或者根据条件判断
add_filter( 'auto_update_theme', function($update, $item) {
    // 例如:关闭特定主题的自动更新
    // if ( $item->theme === 'theme-name' ) return false;
    return false;  // 全部关闭
}, 10, 2 );

四、完整的关闭代码(推荐方案)

将以下代码添加到主题的functions.php文件或自定义插件中:

/**
 * 彻底关闭WordPress所有自动更新功能
 */

// 1. 关闭核心自动更新
add_filter( 'automatic_updater_disabled', '__return_true' );
define( 'AUTOMATIC_UPDATER_DISABLED', true );

// 2. 关闭核心更新(所有类型)
add_filter( 'auto_update_core', '__return_false' );

// 3. 关闭插件自动更新
add_filter( 'auto_update_plugin', '__return_false' );

// 4. 关闭主题自动更新
add_filter( 'auto_update_theme', '__return_false' );

// 5. 关闭翻译文件自动更新
add_filter( 'auto_update_translation', '__return_false' );

// 6. 关闭更新邮件通知
add_filter( 'auto_core_update_send_email', '__return_false' );
add_filter( 'automatic_updates_send_debug_email', '__return_false' );

// 7. 后台禁用自动更新选项显示
add_filter( 'plugins_auto_update_enabled', '__return_false' );
add_filter( 'themes_auto_update_enabled', '__return_false' );

// 8. 移除后台更新提醒(可选)
add_action('admin_menu', function() {
    remove_submenu_page('index.php', 'update-core.php');
});

// 9. 关闭更新检查 cron 任务(可选,谨慎使用)
add_action('init', function() {
    wp_clear_scheduled_hook('wp_version_check');
    wp_clear_scheduled_hook('wp_update_plugins');
    wp_clear_scheduled_hook('wp_update_themes');
});

注意事项

重要提示:

安全风险:关闭自动更新后,你需要手动定期更新以修复安全漏洞

建议做法:

关闭自动更新,但保留小版本安全更新(推荐):

define( 'WP_AUTO_UPDATE_CORE', 'minor' );  // 仅自动更新安全补丁
add_filter( 'auto_update_plugin', '__return_false' );
add_filter( 'auto_update_theme', '__return_false' );

定期维护:建议每月至少手动检查一次更新

验证是否生效

添加代码后,可以通过以下方式验证:

后台查看:进入「仪表盘」→「更新」,看是否还有自动更新提示

数据库检查:查看wp_options表的auto_update_plugins和auto_update_themes字段

日志检查:查看服务器错误日志确认没有自动更新任务执行

以上方法可以彻底关闭WordPress的自动更新功能,根据你的技术能力和需求选择合适的方式即可。