WordPress常见问题与解决方案。

手动升级WordPress

  1. 下载WordPress安装包文件,改名为wordpress.zip
  2. 上传 wordpress.zip 到你网站根目录
  3. 复制下面的代码到主题函数文件
  4. 后台点击更新
  5. 更新完毕,删除下面的代码
/**
 * 临时更改 WordPress 程序包地址以便 WP 在线更新成功
 * 用完别忘了删除这段代码!
 * https://blog.baideye.com/
 */
add_filter('site_transient_update_core', function ($value) {
    if (!is_object($value) || empty($value->updates)) {
        return $value;
    }
    foreach ($value->updates as &$update) {
        if (isset($update->packages)) {
            $update->download = home_url('wordpress.zip');
            $update->packages->full = home_url('wordpress.zip');
        }
    }
    return $value;
});

正在执行例行维护,请一分钟后回来

这个提示是 WordPress 自动升级/更新插件或主题时留下的维护模式标记引起的。 正常情况下,升级完成后 WordPress 会删除 .maintenance 文件,如果意外中断(更新失败 / 服务器超时),该文件没有被删除,就会一直显示这个提示。

解决办法:删除网站根目录下的 .maintenance 文件。

另一更新正在进行

后台点击升级按钮 更新到 6.xx–zh_CN 版本 后,显示:

升级 WordPress
另一更新正在进行。

这是WordPress 在执行升级时自动加的一把“锁”,避免同时并发升级。 有时升级失败 / 中断,就会一直卡住。

解决办法:进入数据库,删除数据表 wp_options 中的 core_updater.lock。之后再去点击升级按钮。

也可以用下面这段代码,放在主题 functions.php 文件中,保存后,在后台刷新一次页面;然后删除这段代码。

/**
 * 删除 WordPress 升级锁
 * 用完别忘了删除这段代码!
 * https://blog.baideye.com/
 * */
add_action('admin_init', function () {
    delete_option('core_updater.lock');
    delete_site_transient('update_core');
    delete_transient('update_core');
});

代码错误无法进入后台

先备份好数据库

如果依赖的是插件:

wp_options 表,查找字段 option_name 的值为 active_plugins ,然后删除对应的 option_value 值

然后重新进入后台即可

如果依赖的是主题:

wp_options表中,option_name 有两个记录控制着当前活动的主题:

  • template:指向父主题
  • stylesheet:指向子主题

删除 stylesheet 对应的值;template 值改为其它主题的文件夹名字