
很多人都遇過:外掛自動更新之後,網站版面跑掉、功能壞掉。一氣之下,就把 WordPress 的更新全部關掉。
這篇 2015 年的舊版文章,教的就是「停用更新」。現在要先講清楚:關掉「自動」更新可以,但不要讓網站停止更新。WordPress 網站被入侵,很常見的原因就是核心或外掛太久沒更新,被人利用已經公開的漏洞進來。
先分清楚:停用「自動更新」和停用「更新」
- 停用自動更新:WordPress 不會自己在背景更新,但後台仍然會提示有新版本,你確認沒問題後再手動更新。這是可以接受的做法。
- 完全停用更新:連手動更新的按鈕都沒了,網站會一直停在舊版本,漏洞越積越多。不建議這樣做。
舊版文章用的 auto_update_plugin、auto_update_theme 其實屬於第一種,只關掉「自動」更新,後台還是可以手動更新。
方法一:用後台設定(最簡單,不用寫程式碼)
WordPress 核心
到「控制台 → 更新」,頁面上方可以切換核心的自動更新方式:
- 只自動更新維護與安全性版本(小版本,例如 6.x.1 升到 6.x.2):這類更新主要是修正錯誤與漏洞,建議一定要保持自動更新。
- 所有新版本都自動更新:連 6.x 升到 6.y 這種主要版本也會自動更新。
外掛
到「外掛 → 已安裝外掛」,每個外掛右邊的「自動更新」欄位,可以一個一個啟用或停用自動更新;也可以勾選多個外掛,用上方的「批次操作」一次設定。
佈景主題
到「外觀 → 佈景主題」,點開佈景主題的詳細資料,就可以啟用或停用自動更新。
建議的分法
- 核心的維護與安全性版本:保持自動更新。
- 小型、功能單純的外掛,以及安全性外掛:開啟自動更新。
- 大型外掛(購物車、頁面編輯器、會員系統)與佈景主題:關閉自動更新,先備份、看過更新說明後再手動更新。
方法二:在 wp-config.php 用常數控制
wp-config.php 在網站根目錄,用 FTP 或主機的檔案管理員打開,下面的設定加在「That's all, stop editing!」那一行的上面。
控制核心的自動更新
// 只自動更新維護與安全性版本(建議)
define( 'WP_AUTO_UPDATE_CORE', 'minor' );WP_AUTO_UPDATE_CORE 可以設定三種值:
'minor':只自動更新維護與安全性版本。true:主要版本也會自動更新。false:核心完全不自動更新。後台仍可手動更新,但安全性修補也不會自動安裝了,不建議。
設定這個常數之後,「控制台 → 更新」頁面的切換開關就以 wp-config.php 為準。
舊版文章寫的是小寫開頭的 wp_AUTO_UPDATE_CORE。PHP 的常數名稱有分大小寫,這樣寫是沒有作用的,要全部大寫。
這兩個常數會把更新整個關掉,要小心
define( 'AUTOMATIC_UPDATER_DISABLED', true );停用所有自動更新,包含核心、外掛、佈景主題與翻譯,連安全性更新也不會自動安裝。
define( 'DISALLOW_FILE_MODS', true );禁止在後台安裝、更新、刪除外掛與佈景主題,也不能在後台更新核心,自動更新也會一起停止。有些主機或開發者會為了鎖住網站加上這一行;如果你發現後台完全看不到更新按鈕,可以檢查 wp-config.php 裡有沒有它。
這兩個常數除非有專人用其他方式(例如版本控制、主機代管)負責更新,否則不建議使用。
方法三:用 filter 控制外掛、佈景主題的自動更新
這幾段加在 Code Snippets 外掛或子主題的 functions.php。建議用 Code Snippets:寫在佈景主題裡的程式碼,換佈景主題之後就失效了。
// 關閉所有外掛的自動更新(後台仍會提示新版本,可以手動更新)
add_filter( 'auto_update_plugin', '__return_false' );
// 關閉所有佈景主題的自動更新
add_filter( 'auto_update_theme', '__return_false' );用程式碼設定之後,後台的自動更新開關就以程式碼為準。
更有彈性的寫法:其他外掛照後台的設定,只有特定幾個外掛強制不自動更新:
add_filter( 'auto_update_plugin', function ( $update, $item ) {
// 這些外掛不自動更新,手動確認後再更新(填外掛的資料夾名稱)
$manual = array( 'woocommerce', 'elementor' );
if ( isset( $item->slug ) && in_array( $item->slug, $manual, true ) ) {
return false;
}
return $update;
}, 10, 2 );$item->slug 是外掛在 wordpress.org 上的代號,通常就是外掛的資料夾名稱。
其實大部分情況,直接用方法一的後台開關就夠了。程式碼比較適合「要把設定鎖住,不讓其他管理員改動」的情況。
一套兼顧安全與穩定的更新流程
- 更新前先備份:檔案與資料庫都要備份,主機的備份功能或備份外掛都可以。
- 看更新說明:大型外掛的大改版,先看更新記錄有沒有相容性提醒,例如需要更新的 PHP 版本。
- 能的話先在測試站更新:很多主機有一鍵建立測試站(Staging)的功能,在測試站確認沒問題再更新正式網站。
- 一次更新一個重要外掛:更新完到前台點一點主要頁面、表單、購物流程,有問題比較容易找出是哪一個。
- 固定時間檢查:至少每一兩週看一次「控制台 → 更新」。
更新後網站壞掉怎麼辦?
- WordPress 發生嚴重錯誤時,會寄一封「復原模式」的信到管理員信箱,照信中的連結登入,就能停用出錯的外掛。
- 收不到信的話,用 FTP 把出錯外掛在
wp-content/plugins/裡的資料夾改名,外掛就會停用,再視情況還原備份或換回舊版。 - 外掛如果很久沒有更新、也沒有在新版 WordPress 測試過,可能已經沒人維護,建議找替代的外掛。
延伸閱讀
- WordPress 登入安全怎麼做?兩步驟驗證、限制登入次數與修改登入網址
- WordPress 隱藏版本號的正確寫法(含移除 ?ver= 參數)
- WordPress functions.php 實用程式碼整理:10 個常用又安全的小技巧
更新是網站維護裡最容易拖延、卻也最重要的一件事。正威網路行銷是 25 年經驗的基隆網頁設計工作室,服務台北與全台客戶,也提供網站維護託管,歡迎來聊聊。







發表留言
還沒有人留言,歡迎第一個分享你的想法或問題。留言經審核後才會顯示,Email 不會公開。