WordPress自动更新造成无法进入后台 + 禁用后台自动更新

WordPress 3.7 以来就有了“后台自动更新”的功能,我的博客很奇怪,一直手动更新到 3.8.1 后这个功能才起效。

然后 3.8.2 和 3.8.3 都是 WordPress 自动升级的,而且我也收到后台发给我的邮件通知。

今早我收到 3.8.3 的通知后,顺便去后台看看评论,没想到登录时老是提示“您的WordPress数据库已经是最新的了!”,如下图

140415-wordpress-auto-update-error

点“继续”按钮直接跳回首页,不管我怎么刷新也没用。

想了下,以前手动也遇到过,一般都是缓存插件造成的,我的博客有安装 db-cache-reloaded-fix 这个数据库缓存插件,于是连上ftp:
1. 把此插件文件夹改名
2. 此插件在 wp-content 目录下生成的 db.php 和 db-config.ini 改名
解决!

恢复 db-cache-reloaded-fix 插件方法:
1. 访问一下 wp 后台的插件列表(会提示 db-cache-reloaded-fix 被更改之类的错误提示)
2. 把刚才改名的文件/文件夹改回来
3. 删除 db-cache-reloaded-fix 目录下的 cache 文件夹所有缓存文件(wp-content/plugins/db-cache-reloaded-fix/cache)
4. 刷新下 wp 后台的插件列表,重新激活 db-cache-reloaded-fix

未尝试的简单解决方法:不用改名什么的,直接删除 db-cache-reloaded-fix 目录下的 cache 文件夹所有缓存文件(同样遇到此情况的朋友可以先试试此方法)。

如果安装的是其他缓存插件(如 widget-cache,object-cache,wp-super-cache,wp-widget-cache等),以此类推解决。

----

我以前就说过“如果用了缓存插件,最好清空缓存并停止缓存插件再升级”,这次 WordPress 自动更新没考虑到用缓存的后果,虽然每次小更新缓存插件不一定就会“捣乱”。

既然跟缓存插件有兼容性问题,那么就要禁用“后台自动更新”,去 WordPress 官方扫了下,大方法有2种
1. wp-config.php 文件中定义常量
2. 过滤器(filters)来处理。(我个人比较喜欢这个方式)

关闭所有自动更新

方法1. 在 wp-config.php 添加如下常量:

define( 'AUTOMATIC_UPDATER_DISABLED', true );

方法2. 使用下面的 filter:(放到主题的 functions.php 里面,下同)

add_filter( 'automatic_updater_disabled', '__return_true' );

顺便说下具体的吧,WordPress 后台自动更新功能有以下四种类型的更新:

  • 核心文件更新(分3个模式)
    • 核心开发更新模式:就是所说的“bleeding edge”,这个模式下是和开发版本同步的。如果你是 WordPress 极度爱好和尝鲜者可以尝试。
    • 小版本核心更新模式:一般是安全和维护版本发布,比如 3.8 更新到 3.8.1。
    • 大版本核心更新模式:比如,3.8 更新 3.9。
  • 插件更新
  • 主题更新
  • 翻译文件更新

核心更新

方法1. wp-config.php 文件中定义常量 WP_AUTO_UPDATE_CORE 下面三种值来设置不同更新模式:

  • true – 开发版、小更新、大更新都会自动更新。
  • false – 开发版、小更新、大更新都不会自动更新。
  • minor – 只有小版本更新才会自动更新。

方法2. 过滤器(Filters):allow_dev_auto_core_updates, allow_minor_auto_core_updates, 以及 allow_major_auto_core_updates

这里有两个 WordPress 内置的函数用来设置开启和关闭:__return_true 和 __return_false,例如:

开启开发更新模式与开发版本同步:

add_filter( 'allow_dev_auto_core_updates', '__return_true' );

关闭小版本更新:

add_filter( 'allow_minor_auto_core_updates', '__return_false' );

开启大版本更新:

add_filter( 'allow_major_auto_core_updates', '__return_true' );

插件和主题更新

插件和主题自动更新默认是关闭的,可以通过 auto_update_$type 这个 filter 来开启它们,其中 $type 是 “plugin” 或者 “theme”。
开启插件自动更新:

add_filter( 'auto_update_plugin', '__return_true' );

开启主题自动更新:

add_filter( 'auto_update_theme', '__return_true' );

翻译更新

翻译更新默认是开启的,如要关闭,这样:

add_filter( 'auto_update_translation', '__return_false' );

通常太自动的东西还是比较容易遇到问题,Orz

声明: 除非注明,ZWWoOoOo文章均为原创,转载请以链接形式标明本文地址
本文地址: http://zww.me/wordpress-auto-upgrade-caused-inaccessible-backstage-and-disable-automatic-updating.z-turn

59 comments

  1. 空空裤兜 空空裤兜 Google Chrome 34.0.1847.116Windows 7

    看了文章,进自己的后台,发现已然中招

    沙发
  2. cangzhang cangzhang Google Chrome 34.0.1847.116Windows 8.1 x64 Edition

    不用WP了....

    板凳
  3. 哇168 哇168 Firefox 28.0Windows XP

    占时还没碰到过,不过可以先学习 :mrgreen:

    地板
  4. 有点蓝 有点蓝 Opera 9.99Windows XP

    通常太自动的东西还是比较容易遇到问题,Orz

    就是,还是“一切尽在掌控”的好 :mrgreen:

    4楼
  5. Simnovo Simnovo Google Chrome 33.0.1750.149Windows 7

    已经没用缓存插件

    5楼
  6. 老谢 老谢 Google Chrome 34.0.1847.116Windows 7

    我今天也遇到了这个问题,网上搜了下说是缓存的问题,然后关掉memcached才进去 :evil:

    6楼
  7. 大肥羊 大肥羊 Firefox 28.0Windows 7

    :mrgreen:
    进后台点更新的,没事~

    7楼
  8. ilikecss ilikecss Google Chrome 33.0.1750.146Windows 7 x64 Edition

    我更新后登录一直提交或刷新后是空白页,你碰到过吗

    8楼
    • ilikecss ilikecss Google Chrome 33.0.1750.146Windows 7 x64 Edition

      @ilikecss
      求帮助哦,login后直接提交空白页面了。。。

    • zwwooooo zwwooooo Firefox 28.0Windows 8.1 x64 Edition

      @ilikecss
      碰到过,不是缓存就是主题函数/插件出错等。

    • zwwooooo zwwooooo Firefox 28.0Windows 8.1 x64 Edition

      @ilikecss
      通常是缓存插件造成的,也有可能是某些插件不兼容造成的,部分太老的主题用了古老的函数也会……解决方法:
      1. ftp进去,把插件的文件夹都改名再登陆(有缓存插件的话把缓存文件也删了)
      2. 如1失败,继续把主题文件夹改名(记住要有默认主题在那)
      3. 如果1和2都失败属于RPWT:导出数据库和文件重装WP去吧

  9. aisin aisin Google Chrome 33.0.1750.152Mac OS X 10.8.5

    已更新到3.9

    9楼
  10. 集趣 集趣 Google Chrome 34.0.1847.116Windows 7 x64 Edition

    这个问题,我怎么就没遇到过呢

    10楼
  11. 屠龙 屠龙 Google Chrome 21.0.1180.89Windows XP

    这个问题一般好解决

    11楼
  12. 甜菜 甜菜 Sogou ExplorerWindows 8.1

    缓存插件=麻烦

    12楼
  13. satiling satiling Google Chrome 29.0.1547.66Windows 7

    请问博主,http://www.zdmai.cn/网站左侧悬浮菜单是如何实现的?

    我使用:
    $args = array(

    'theme_location' => 'leftmenu',
    'echo' => true,
    'container' => 'div',
    'container_class'=> 'category-list-wrap',
    'container_id'=> '',
    'menu_id'=>'aside-category-list',
    'menu_class'=>'category-list',
    'before'=>' ',
    'after'=>'',
    'depth'=>3,
    'walker'=> new SH_Last_Walker(),
    'sort_column' => 'menu_order',
    'fallback_cb' =>'Bing_nav_fallback_default',

    );
    wp_nav_menu($args);

    方法只能对1级菜单进行设置,二级菜单的UL无法改成div,而且三级菜单也不会做,请教你,谢谢啊!

    13楼
    • zwwooooo zwwooooo Firefox 28.0Windows 8.1 x64 Edition

      @satiling
      其实不需要改结构啊,主要是样式css。多学习下css就能解决,要我写出来不可能吧,我忙着呢。

    • satiling satiling Google Chrome 29.0.1547.66Windows 7

      你没有明白我的意思,不是让你帮我写,想请教你,困难在于,里面的二级菜单无法修改其UL 和样式,一级菜单我可以修改,但是二级和三级无法修改,如果写死了菜单也很容易,但是我希望是能够使用wp_nav_menu来实现,大师明白吗?

    • satiling satiling Google Chrome 29.0.1547.66Windows 7

      @zwwooooo
      大师,你先看看人家那个的技术难度再说吧,不是简单的CSS样式就可以搞定的,wp_nav_menu的局限很小,二级甚至3级里面的ul li 都无法自定义,非常难搞。

    • satiling satiling Google Chrome 29.0.1547.66Windows 7

      看了结构,他是这样实现的,先全部输出一级分类,然后再每个一级分类里面输出二级分类,最后再二级分类里面输出三级分类,

      这样代码应该怎么写? 现在确认肯定不是用wp_nav_menu实现的。

    • zwwooooo zwwooooo Firefox 28.0Windows 8.1 x64 Edition

      @satiling
      可以写的,二级是 #ooxx ul ul li(一级样式会影响的重写) 三级是 ul ul ul li ... 以此类推

    • zwwooooo zwwooooo Firefox 28.0Windows 8.1 x64 Edition

      @satiling
      Orz,我说可以就是因为我做过,你老是叫我看别人的干嘛呢,而且要变成div也行啊,用正则表达式过滤出来重组,慢慢折腾。

    • satiling satiling Google Chrome 29.0.1547.66Windows 7

      那请问你帮我写出来www.zdmai.com的左侧菜单样式,需要多少钱啊?

    • zwwooooo zwwooooo Firefox 28.0Windows 8.1 x64 Edition

      @satiling
      最近都没时间写,这个大概几百元,建议自己折腾下或者搜索一下有没有此类插件。

  14. Demon Demon Firefox 29.0Windows 8.1 x64 Edition

    之前小站作为实验品借用贵站长的zboder主题,本人自己重新制作了一个WP主题. 为之前学习阶段使用了贵站的主题表示一下感谢, 在 http://demonc.com/about-demon/ 中以及友情连接中添加贵站的地址 3Q.

    14楼
  15. axiu axiu Google Chrome 34.0.1847.116Windows 7 x64 Edition

    啊哈哈哈~~

    15楼
  16. kn007 kn007 Google Chrome 34.0.1847.116Windows 7 x64 Edition

    我想问Z大,现在用哪个slug插件or代码?表示偶的自动更新,一直没出现错误。。。

    16楼
    • zwwooooo zwwooooo Firefox 28.0Windows 8.1 x64 Edition

      @kn007
      slug插件?干啥用的?

    • kn007 kn007 Android Webkit 4.0HTC One

      @zwwooooo
      就是写文章的时候,自动将中文标题翻译成英文地址

    • zwwooooo zwwooooo Firefox 28.0Windows 8.1 x64 Edition

      @kn007
      我是人工Google翻译粘贴 :cool: 至于插件嘛,以前好像有,但没用过,名字也忘了,搜搜。

    • zwwooooo zwwooooo Firefox 28.0Windows 8.1 x64 Edition

      @zwwooooo
      测试一下评论提交, :evil:

    • kn007 kn007 Android Webkit 4.0HTC One

      @zwwooooo 过来测试,貌似slug是snoopy有问题,以前也是用插件,后来自己整合了。现在不知找那个插件好,以前也是插件不能用。我现在没时间折腾

  17. Demon Demon Google Chrome 36.0.1941.0Windows 8.1 x64 Edition

    :razz: 你的建议我收到了,哈哈.博主是台湾人吧- -

    17楼
  18. 安心 安心 Google Chrome 34.0.1847.116Windows 7 x64 Edition

    我昨天就中招了,我是用ftp更新的WordPress 3.9,后来没办法,又恢复到3.8.3了。

    18楼
  19. aunsen aunsen Firefox 29.0Windows 8.1 x64 Edition

    缓存插件就这点不好。。。

    19楼
  20. 郑永 郑永 Firefox 28.0Windows XP

    貌似侧边评论有点问题,一闪一闪的,就没了, 对了, 我的也提示数据库更新,按一下就OK,还好没这麻烦。倒是标题翻译出问题了,你用什么插件啊?

    20楼
    • zwwooooo zwwooooo Firefox 28.0Windows 8.1 x64 Edition

      @郑永
      没问题啊?我用ff和chrome都看了,你多刷新下,我都没改过主题呢。
      标题翻译?你指文章slug名么?如果是的话我没用插件,就是google翻译或者拼音 - -

  21. 临沭人 临沭人 Google Chrome 34.0.1847.116Windows XP

    自动升级了一次,就关闭了

    21楼
  22. 心理软件 心理软件 Firefox 28.0Windows XP

    貌似很不错哦

    22楼
  23. 牧风 牧风 Google Chrome 34.0.1847.116GNU/Linux x64

    :mrgreen: :mrgreen: 毫无压力

    23楼
  24. 纽小二 纽小二 Google Chrome 34.0.1847.116Windows 7

    有时能自动更,有时不能,管他的,反正自己是更新强迫症患者。没药医了

    24楼
  25. Yang Yang Google Chrome 34.0.1847.116Windows 7

    :eek: 我也是3.8之后,才变得自动更新小版本。
    用了这几年,习惯了很多,就让它自由一次吧,嘿嘿

    25楼
  26. 郑永 郑永 Firefox 28.0Windows XP

    查看最近评论有点问题,检查一下,侧边滚动也有点问题。

    26楼
    • zwwooooo zwwooooo Firefox 28.0Windows 8.1 x64 Edition

      @郑永
      请问有什么问题?我怎么都重现不了你说的问题……要不你发现问题时用“隐私模式”访问下,看看是不是浏览器缓存导致。

  27. 昵图网 昵图网 Google Chrome 34.0.1847.116Windows XP

    应该是主机设置问题?最近WP升级较频繁。 :!:

    27楼

Leave a Reply