我的wordpress自動更新到3.8.3了,于是想去后臺看看更新得怎么樣了,發現確無法進入后臺,后來找出是緩存插件造成,覺得這樣自動更新不太好,以后還是手動更新,就在后臺把自動更新的功能關了.
今早我收到 3.8.3 的通知后,順便去后臺看看評論,沒想到登錄時老是提示“您的WordPress數據庫已經是最新的了!”.
點“繼續”按鈕直接跳回首頁,不管我怎么刷新也沒用,想了下,以前手動也遇到過,一般都是緩存插件造成的,我的博客有安裝 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
新聞熱點
疑難解答
圖片精選