WordPress 版本更新完全指南

WordPress版本更新对网站安全与性能至关重要。文章介绍了主版本、次版本和维护版本的区别及支持状态,并详细说明了自动更新(后台一键更新、配置自动更新、wp-cli命令)和手动更新(准备工作、更新流程、FTP更新)的具体方法,同时提供了自动化更新脚本示例。

文章作者:
阅读时间: 67 分钟
更新时间:2026年4月16日

WordPress 版本更新是确保网站安全、性能和功能完整性的重要环节。以下是详细的更新方法和注意事项。

📊 WordPress 版本说明

版本类型

  • 主版本:5.0, 6.0, 7.0(重大更新,新功能)
  • 次版本:6.1, 6.2, 6.3(功能增强,小改动)
  • 维护版本:6.4.1, 6.4.2(安全修复,bug修复)

当前版本支持状态

WordPress 7.x   - 当前版本
WordPress 6.x   - 活跃维护
WordPress 5.x   - 安全维护
WordPress 4.x   - 已停止支持(不安全)

🔄 自动更新方法

1. 后台一键更新

// 访问后台仪表盘
// 仪表盘 → 更新 → 立即更新

自动更新条件

  • WordPress 文件权限正确(755/644)
  • 服务器支持自动解压
  • 有足够的磁盘空间
  • 没有修改核心文件

2. 配置自动更新

wp-config.php中添加:

// 启用所有自动更新(不推荐)
define('WP_AUTO_UPDATE_CORE', true);

// 推荐配置
define('WP_AUTO_UPDATE_CORE', 'minor');  // 只自动更新小版本
// 或
define('WP_AUTO_UPDATE_CORE', false);    // 禁用自动更新

// 禁用主题/插件自动更新
define('AUTOMATIC_UPDATER_DISABLED', true);

// 开发环境禁用自动更新
if (WP_ENVIRONMENT_TYPE === 'development') {
    define('WP_AUTO_UPDATE_CORE', false);
    define('AUTOMATIC_UPDATER_DISABLED', true);
}

3. 通过 wp-cli 自动更新

# 检查更新
wp core check-update

# 更新WordPress核心
wp core update
wp core update-db

# 更新翻译
wp language core update

# 更新插件
wp plugin update --all

# 更新主题
wp theme update --all

# 一键更新所有
wp core update && wp plugin update --all && wp theme update --all

🔧 手动更新方法

步骤1:准备工作

# 1. 完整备份
# 备份数据库
wp db export backup-$(date +%Y%m%d).sql

# 备份文件
tar -czf wordpress-backup-$(date +%Y%m%d).tar.gz /path/to/wordpress

# 2. 检查系统要求
php -v  # PHP 7.4+
mysql -V  # MySQL 5.6+ 或 MariaDB 10.1+
df -h  # 磁盘空间

步骤2:手动更新流程

# 1. 进入维护模式
echo "网站维护中,请稍后访问..." > /path/to/wordpress/.maintenance

# 2. 下载最新版本
wget https://wordpress.org/latest.zip
# 或
wget https://wordpress.org/latest.tar.gz

# 3. 解压
unzip latest.zip
# 或
tar -xzvf latest.tar.gz

# 4. 备份旧版wp-includes和wp-admin
cp -r /path/to/wordpress/wp-admin /path/to/wordpress/wp-admin-backup
cp -r /path/to/wordpress/wp-includes /path/to/wordpress/wp-includes-backup

# 5. 替换核心文件
cp -r wordpress/* /path/to/wordpress/

# 6. 保留wp-config.php和wp-content
# 自动跳过

# 7. 清理临时文件
rm -rf wordpress
rm latest.zip

# 8. 退出维护模式
rm /path/to/wordpress/.maintenance

步骤3:通过FTP更新

1. 下载最新WordPress
2. 解压到本地
3. 连接到FTP服务器
4. 删除(或重命名)旧版:
   - wp-admin
   - wp-includes
5. 上传新版文件:
   - 上传所有文件和文件夹
   - 跳过wp-content目录
   - 保留wp-config.php
6. 访问:你的网站.com/wp-admin/upgrade.php

🚀 更新脚本(自动化)

1. Bash 自动更新脚本

#!/bin/bash
# update-wordpress.sh

# 配置
WP_PATH="/var/www/wordpress"
BACKUP_DIR="/backups/wordpress"
DATE=$(date +%Y%m%d-%H%M%S)
LOG_FILE="$BACKUP_DIR/update-$DATE.log"

# 创建备份目录
mkdir -p $BACKUP_DIR

# 开始日志
echo "=== WordPress 更新开始: $(date) ===" | tee -a $LOG_FILE

# 1. 进入维护模式
echo "进入维护模式..." | tee -a $LOG_FILE
echo "<?php \$upgrading = time(); ?>" > $WP_PATH/.maintenance

# 2. 备份数据库
echo "备份数据库..." | tee -a $LOG_FILE
cd $WP_PATH
wp db export $BACKUP_DIR/db-backup-$DATE.sql 2>&1 | tee -a $LOG_FILE

# 3. 备份文件
echo "备份文件..." | tee -a $LOG_FILE
tar -czf $BACKUP_DIR/files-backup-$DATE.tar.gz \
    --exclude="*.tar.gz" \
    --exclude="*.zip" \
    --exclude="*.sql" \
    $WP_PATH 2>&1 | tee -a $LOG_FILE

# 4. 检查当前版本
echo "当前版本: $(wp core version)" | tee -a $LOG_FILE

# 5. 检查更新
echo "检查更新..." | tee -a $LOG_FILE
UPDATE_AVAILABLE=$(wp core check-update --field=version 2>/dev/null | head -1)

if [ -z "$UPDATE_AVAILABLE" ]; then
    echo "已是最新版本" | tee -a $LOG_FILE
else
    echo "发现新版本: $UPDATE_AVAILABLE" | tee -a $LOG_FILE
    
    # 6. 执行更新
    echo "开始更新..." | tee -a $LOG_FILE
    wp core update 2>&1 | tee -a $LOG_FILE
    wp core update-db 2>&1 | tee -a $LOG_FILE
    
    # 7. 更新翻译
    echo "更新翻译..." | tee -a $LOG_FILE
    wp language core update 2>&1 | tee -a $LOG_FILE
    
    # 8. 更新插件
    echo "更新插件..." | tee -a $LOG_FILE
    wp plugin update --all 2>&1 | tee -a $LOG_FILE
    
    # 9. 更新主题
    echo "更新主题..." | tee -a $LOG_FILE
    wp theme update --all 2>&1 | tee -a $LOG_FILE
    
    echo "更新后版本: $(wp core version)" | tee -a $LOG_FILE
fi

# 10. 清理缓存
echo "清理缓存..." | tee -a $LOG_FILE
wp cache flush 2>&1 | tee -a $LOG_FILE
wp rewrite flush 2>&1 | tee -a $LOG_FILE

# 11. 修复权限
echo "修复权限..." | tee -a $LOG_FILE
find $WP_PATH -type d -exec chmod 755 {} \;
find $WP_PATH -type f -exec chmod 644 {} \;
chmod 600 $WP_PATH/wp-config.php

# 12. 退出维护模式
echo "退出维护模式..." | tee -a $LOG_FILE
rm -f $WP_PATH/.maintenance

# 13. 清理旧备份(保留最近7天)
echo "清理旧备份..." | tee -a $LOG_FILE
find $BACKUP_DIR -name "*.sql" -mtime +7 -delete
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete
find $BACKUP_DIR -name "*.log" -mtime +30 -delete

echo "=== WordPress 更新完成: $(date) ===" | tee -a $LOG_FILE
echo "备份位置: $BACKUP_DIR" | tee -a $LOG_FILE

2. PHP 更新脚本

<?php
/**
 * WordPress 安全更新脚本
 * 访问:https://yoursite.com/update.php?key=YOUR_SECRET_KEY
 */

define('SECRET_KEY', 'your-secret-key-here');

if (!isset($_GET['key']) || $_GET['key'] !== SECRET_KEY) {
    die('Access denied');
}

// 包含WordPress
require_once('wp-load.php');

if (!current_user_can('update_core')) {
    die('Insufficient permissions');
}

header('Content-Type: text/plain; charset=utf-8');
echo "开始WordPress更新...\n\n";

// 检查更新
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
require_once(ABSPATH . 'wp-admin/includes/class-wp-upgrader.php');
require_once(ABSPATH . 'wp-admin/includes/file.php');

// 1. 备份数据库
echo "1. 备份数据库...\n";
$backup_file = ABSPATH . 'wp-content/backup-' . date('Y-m-d-H-i-s') . '.sql';
exec("wp db export " . escapeshellarg($backup_file) . " 2>&1", $output, $return_code);
if ($return_code === 0) {
    echo "   数据库备份成功: " . basename($backup_file) . "\n";
} else {
    echo "   数据库备份失败\n";
}

// 2. 检查核心更新
echo "2. 检查WordPress核心更新...\n";
$core_updates = get_core_updates();
if (isset($core_updates[0]->response) && $core_updates[0]->response == 'latest') {
    echo "   已是最新版本: " . $core_updates[0]->current . "\n";
} else {
    echo "   发现新版本,开始更新...\n";
    
    // 创建更新器
    $upgrader = new Core_Upgrader();
    $result = $upgrader->upgrade($core_updates[0]);
    
    if (is_wp_error($result)) {
        echo "   更新失败: " . $result->get_error_message() . "\n";
    } else {
        echo "   核心更新成功\n";
        
        // 更新数据库
        echo "   更新数据库...\n";
        require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
        wp_upgrade();
        echo "   数据库更新完成\n";
    }
}

// 3. 更新插件
echo "3. 更新插件...\n";
$plugin_updates = get_plugin_updates();
if (!empty($plugin_updates)) {
    $upgrader = new Plugin_Upgrader();
    foreach ($plugin_updates as $plugin) {
        echo "   更新插件: " . $plugin->Name . "...\n";
        $result = $upgrader->upgrade($plugin->update->plugin);
        if (is_wp_error($result)) {
            echo "   失败: " . $result->get_error_message() . "\n";
        } else {
            echo "   成功\n";
        }
    }
} else {
    echo "   没有需要更新的插件\n";
}

// 4. 更新主题
echo "4. 更新主题...\n";
$theme_updates = get_theme_updates();
if (!empty($theme_updates)) {
    $upgrader = new Theme_Upgrader();
    foreach ($theme_updates as $theme) {
        echo "   更新主题: " . $theme->Name . "...\n";
        $result = $upgrader->upgrade($theme->update['theme']);
        if (is_wp_error($result)) {
            echo "   失败: " . $result->get_error_message() . "\n";
        } else {
            echo "   成功\n";
        }
    }
} else {
    echo "   没有需要更新的主题\n";
}

// 5. 清理缓存
echo "5. 清理缓存...\n";
wp_cache_flush();
if (function_exists('rocket_clean_domain')) {
    rocket_clean_domain();
    echo "   WP Rocket缓存已清理\n";
}
if (function_exists('w3tc_flush_all')) {
    w3tc_flush_all();
    echo "   W3 Total Cache缓存已清理\n";
}
echo "   WordPress缓存已清理\n";

// 6. 更新翻译
echo "6. 更新翻译文件...\n";
wp_update_translations_async();

echo "\n更新完成!\n";

// 发送邮件通知
$to = get_option('admin_email');
$subject = 'WordPress更新完成 - ' . get_bloginfo('name');
$message = "WordPress更新于 " . date('Y-m-d H:i:s') . " 完成。\n\n";
$message .= "网站: " . get_bloginfo('url') . "\n";
$message .= "新版本: " . get_bloginfo('version') . "\n";
wp_mail($to, $subject, $message);

echo "通知邮件已发送到: " . $to . "\n";
?>

📋 更新检查清单

更新前检查

// 检查当前环境
<?php
// 1. 检查PHP版本
if (version_compare(PHP_VERSION, '7.4.0', '<')) {
    die('需要PHP 7.4或更高版本');
}

// 2. 检查MySQL版本
global $wpdb;
$mysql_version = $wpdb->db_version();
if (version_compare($mysql_version, '5.6.0', '<')) {
    die('需要MySQL 5.6或更高版本');
}

// 3. 检查内存限制
$memory_limit = ini_get('memory_limit');
if (wp_convert_hr_to_bytes($memory_limit) < 67108864) { // 64MB
    die('内存限制至少需要64MB');
}

// 4. 检查磁盘空间
$free_space = disk_free_space(ABSPATH);
if ($free_space < 104857600) { // 100MB
    die('需要至少100MB可用空间');
}

// 5. 检查文件权限
$writable = array(
    'wp-content',
    'wp-content/uploads',
    'wp-content/upgrade',
    'wp-config.php'
);
foreach ($writable as $file) {
    if (!is_writable(ABSPATH . $file)) {
        die($file . ' 需要可写权限');
    }
}
?>

更新后验证

// 验证更新是否成功
<?php
// 1. 检查版本
echo 'WordPress版本: ' . get_bloginfo('version') . '<br>';

// 2. 检查数据库版本
global $wpdb;
$db_version = get_option('db_version');
echo '数据库版本: ' . $db_version . '<br>';

// 3. 检查核心文件完整性
$checksums = get_core_checksums(get_bloginfo('version'), 'zh_CN');
if (is_array($checksums)) {
    echo '核心文件完整性: 正常<br>';
} else {
    echo '核心文件完整性: 检查失败<br>';
}

// 4. 检查主题和插件兼容性
$incompatible = array();
$plugins = get_plugins();
foreach ($plugins as $plugin_file => $plugin_data) {
    if (is_plugin_inactive($plugin_file)) {
        continue;
    }
    // 检查插件最后更新时间
    $last_updated = strtotime($plugin_data['LastUpdated']);
    if ($last_updated < strtotime('-2 years')) {
        $incompatible[] = $plugin_data['Name'];
    }
}

if (!empty($incompatible)) {
    echo '可能不兼容的插件: ' . implode(', ', $incompatible) . '<br>';
}

// 5. 运行站点健康检查
if (class_exists('WP_Site_Health')) {
    $site_health = WP_Site_Health::get_instance();
    $results = $site_health->get_tests();
    echo '站点健康状态: 已检查<br>';
}
?>

🐛 常见问题解决

问题1:更新失败(白屏)

// 在wp-config.php中添加调试模式
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

// 查看错误日志
// wp-content/debug.log

问题2:数据库更新失败

# 手动运行数据库更新
wp core update-db

# 或访问
# https://yoursite.com/wp-admin/upgrade.php

问题3:文件权限问题

# 修复文件权限
sudo find /path/to/wordpress -type d -exec chmod 755 {} \;
sudo find /path/to/wordpress -type f -exec chmod 644 {} \;
sudo chmod 640 /path/to/wordpress/wp-config.php
sudo chown -R www-data:www-data /path/to/wordpress

问题4:主题/插件不兼容

// 1. 进入安全模式
// 在wp-config.php中添加
define('SAFE_MODE_PLUGINS', true);

// 2. 禁用所有插件
function disable_all_plugins() {
    update_option('active_plugins', array());
}
add_action('init', 'disable_all_plugins');

// 3. 切换默认主题
switch_theme('twentytwentyfour');

高级技巧

1. 版本回滚

# 回滚到指定版本
wp core update --version=6.4.2 --force

# 从备份恢复
tar -xzvf backup.tar.gz -C /path/to/wordpress
wp db import backup.sql

2. 分阶段更新

// 开发 → 测试 → 生产
define('WP_ENVIRONMENT_TYPE', 'production'); // development, staging, production

if (WP_ENVIRONMENT_TYPE === 'production') {
    // 生产环境:只更新维护版本
    add_filter('allow_dev_auto_core_updates', '__return_false');
    add_filter('allow_minor_auto_core_updates', '__return_true');
    add_filter('allow_major_auto_core_updates', '__return_false');
} elseif (WP_ENVIRONMENT_TYPE === 'staging') {
    // 测试环境:更新所有版本
    add_filter('allow_major_auto_core_updates', '__return_true');
}

3. 自定义更新通知

// 添加自定义更新检查
add_filter('pre_set_site_transient_update_core', 'custom_core_update_check');
function custom_core_update_check($transient) {
    if (empty($transient->checked)) {
        return $transient;
    }
    
    // 自定义更新源
    $response = wp_remote_get('https://your-api.com/wordpress-updates');
    if (!is_wp_error($response)) {
        $data = json_decode(wp_remote_retrieve_body($response));
        if (isset($data->new_version)) {
            $transient->response['wordpress'] = $data;
        }
    }
    
    return $transient;
}

🔐 安全更新策略

1. 安全更新优先级

// 紧急安全更新立即应用
add_filter('auto_update_core', 'auto_update_security_only', 10, 2);
function auto_update_security_only($update, $item) {
    if ($item->response === 'upgrade' && 
        version_compare($item->current, '6.0', '>=') &&
        strpos($item->version, '.1') !== false) { // 维护版本
        return true;
    }
    return false;
}

2. 更新验证

# 验证下载的文件
wget https://wordpress.org/wordpress-6.5.tar.gz
wget https://wordpress.org/wordpress-6.5.tar.gz.md5
md5sum -c wordpress-6.5.tar.gz.md5

# 或使用SHA256
wget https://wordpress.org/wordpress-6.5.tar.gz.sha256
sha256sum -c wordpress-6.5.tar.gz.sha256

📈 最佳实践

更新时间表

每日:检查安全更新
每周:检查次要版本更新
每月:检查主要版本更新
每季度:完整测试和更新

监控日志

# 监控更新日志
tail -f /var/log/wordpress/update.log
tail -f /path/to/wordpress/wp-content/debug.log

# 邮件通知更新结果
wp option set admin_email admin@example.com

🆘 紧急恢复

如果更新失败,按顺序执行:

  1. 恢复备份
# 从最近的备份恢复
tar -xzvf backup-latest.tar.gz -C /path/to/wordpress
wp db import backup-latest.sql
  1. 使用紧急恢复脚本
<?php
// emergency-recovery.php
rename(ABSPATH . '.maintenance', ABSPATH . '.maintenance.bak');
delete_option('core_updater.lock');
wp_cache_flush();
header('Location: ' . admin_url());
exit;
  1. 联系主机商支持
    • 提供错误日志
    • 提供备份文件
    • 请求文件权限修复

记住黄金法则永远先备份,再更新!

通过遵循本指南,你可以安全、高效地管理WordPress版本更新,确保网站的稳定性和安全性。

这篇文章有用吗?

点击星号为它评分!

平均评分 0 / 5. 投票数: 0

到目前为止还没有投票!成为第一位评论此文章。

在AI工具中继续讨论:

曾凤祥

曾凤祥

WordPress技术负责人
WordPress 开发与企业建站领域 10+ 年实践经验,长期专注于外贸独立站、企业官网的性能与 SEO 优化,累计服务企业客户数百家(含制造、贸易、科技等行业)

相关文章

无论你是否已有网站,我们都能帮你把线上业务推上新高度

无论什么行业,都能快速拥有专业网站:

无论什么行业,都能快速拥有专业网站:

展示型官网 / 品牌站 / 外贸独立站,均有成熟模板与定制方案
无需懂代码:可视化编辑+我们指导,轻松启动 → 快速上线,抢占先机​
结构清晰、利于SEO与后期运营,降低长期维护成本

立即查看建站方案
网站加载慢、跳出高、询盘少?

网站加载慢、跳出高、询盘少?

老旧体验与技术隐患会直接拖累获客与转化。
我们提供:网站全面诊断 → 速度/安全/结构优化 → 可持续运维支持(技术+策略),让网站真正成为您的业务增长工具,而不只是“线上门面”。

马上获取专属优化方案
微信联系
chat 扫码联系
模板建站
挑选模板
网站定制
免费诊断
咨询热线
咨询热线

189-0733-7671

返回顶部