WordPress 外掛刪除:在管理後台刪除後,連殘留的資料庫也一併清除的方法

聯盟行銷揭露 Ver 3.1
聯盟行銷揭露 Ver 3.2(僅限行動版)

刪除 WordPress 外掛,只要在管理後台按一個按鈕就能完成,但外掛建立的資料表與設定,常常會原封不動地留在資料庫中。這個網站也一樣,以前刪除的廣告與留言外掛共 2 個,截至 2026-10-09 仍留有 8 個資料表與 38 列選項。

本文依序整理了從在管理後台刪除外掛,到清理殘留的短代碼、資料夾、DB 的方法。

1️⃣ 在管理後台刪除外掛

在 [外掛] > [已安裝的外掛] 中,先按下 [停用],再按下同一列出現的 [刪除]。

WordPress 外掛刪除 - 管理後台頁面

如果外掛內含清理程式碼,會在這時一起執行;沒有清理程式碼的話,只會刪除檔案,資料則會留下。

2️⃣ 刪除後資料仍會殘留的原因

WordPress 刪除外掛時,會執行該外掛的 [uninstall.php] 檔案,或以 [register_uninstall_hook] 註冊的函式。刪除資料的工作交由這段程式碼負責,所以沒有這段程式碼,或程式碼只刪除部分資料的外掛,就會留下資料表與選項。

也有開發者會刻意保留資料,目的是在重新安裝時能把設定原樣恢復。有些外掛會像 Wordfence 一樣,在設定畫面提供連同資料一起刪除的選項,Polylang 多語系外掛也提供同樣的選項。

刪除與停用 WordPress 外掛 - 有刪除選項的 Wordfence 外掛
Wordfence 外掛的刪除選項

3️⃣ 殘留資料對網站的影響

在殘留的選項中,開啟 [autoload] 的列,每次開啟頁面時都會和其他設定一起載入記憶體。這個網站中殘留的 wpDiscuz [wc_options](15KB)與 Advanced Ads [advanced-ads-ab-module](14KB),就是這樣的列。

不過,這個網站的 autoload 總計約 392KB,其中殘留的列約 39KB,不會造成感受得到的速度差異。WordPress 的 [網站狀態] 畫面會在 autoload 總計超過 800KB 時顯示警告。

關閉剩下 23 列的 autoload 後,Advanced Database Cleaner 的 [自動載入大小] 從 391.52KB 降到 353.36KB。

Advanced Database Cleaner 自動載入大小 391.52KB(清理前)
Advanced Database Cleaner 自動載入大小 353.36KB(清理後)

平常不會造成問題。收到快取頁面的訪客不會經過 PHP,所以會載入 autoload 資料的,只有管理後台、清除快取後的第一次造訪、機器人這類不經過快取的請求。這類請求一次湧入時,有幾個請求,就要在記憶體中展開幾次 autoload 資料,所以 autoload 越大的網站,伺服器負載增加得越快。

關閉 autoload 的選項與殘留的資料表,在沒有那個外掛時不會被讀取,所以與速度無關,只會增加資料庫容量與備份大小。

4️⃣ 清除殘留的痕跡

動到資料庫之前,請先完整備份。

🔲 短代碼

外掛放進文章中的短代碼,在刪除外掛後,會以方括號文字的原樣出現在內文中。在逐篇修改文章之前,請在佈景主題的 [functions.php] 中加入下面這一行,讓該短代碼不輸出任何內容。

add_shortcode( 'pluginshortcode', '__return_false' );

這個網站也曾使用表格外掛的 10 多個短代碼,後來因為安全問題刪除外掛時,把短代碼與資料表逐一清理掉,之後就不再使用短代碼。

🔲 外掛資料夾

在管理後台沒有刪掉的資料夾,請用 FTP、cPanel、SSH 到 [wp-content/plugins] 底下直接刪除。

🔲 DB 資料表與資料列(phpMyAdmin)

大部分的主機都有提供 phpMyAdmin。

WordPress phpMyAdmin 選取資料表後的路徑

殘留的資料表,請在 [結構] 分頁中找出含有外掛名稱的資料表後刪除。下面是以 Yoast SEO 為例的畫面。

WordPress phpMyAdmin 在結構中找出資料表後刪除的方法

選項這類資料列,請在 [搜尋] 中加上萬用字元 [%],以 [%yoast%] 的方式搜尋。

WordPress phpMyAdmin 在搜尋中找出資料列後刪除的方法 1
WordPress phpMyAdmin 在搜尋中找出資料列後刪除的方法 2

再用 [篩選資料列] 篩選一次,就能確認這些資料列是否只與 Yoast SEO 有關。

WordPress phpMyAdmin 在搜尋中找出資料列後刪除的方法 3

資料列主要會留在 [wp_options]、[wp_postmeta]、[wp_usermeta] 中,資料表名稱前面的 [wp_] 每個網站可能不同。只看名稱就刪除,可能會連其他外掛使用的列也一起刪掉,所以只刪除已確認屬於哪個外掛的列。

5️⃣ DB 清理外掛

如果想在管理後台而不是 phpMyAdmin 中清理,請使用 Advanced Database Cleaner。這個網站也在使用,它會在 [屬於] 中標示每個選項與資料表屬於哪個外掛,所以能分辨出哪些列可以刪除。

[屬於] 為 [尚未掃描] 的列,並不是沒在使用的列,而是還不知道屬於誰的列。這個網站中也有不少陌生名稱,其實是 Kadence Blocks Pro、WP Ghost 這類目前啟用中外掛的授權與設定;刪除這類列,授權就會失效,或設定會被重設。

所以即使是已刪除外掛的列,也不要馬上刪除,而是先關閉 autoload。值會原樣保留,隨時都能復原;如果幾天內網站都沒有問題,再刪除。

已刪除外掛的殘留選項 autoload auto
已刪除外掛的殘留選項 autoload off

WP-Optimize 的免費版也能刪除殘留的資料表。

WP-Optimize 外掛刪除殘留的資料庫資料表
WP-Optimize 的 DB 資料表刪除功能
外掛(石牆上發光的霓虹燈招牌)

🔢 FAQ & 推薦內容

WordPress 只會載入已啟用的外掛,所以已停用外掛的程式碼不會在開啟頁面時執行。不過只要檔案還留在伺服器上,就得持續注意更新,所以沒有打算再用的話,就把它刪除。

已啟用的外掛不會顯示 [刪除],所以請先按下 [停用]。如果還是看不到,請確認 wp-config.php 中是否把 [DISALLOW_FILE_MODS] 設為 true;這個值開啟時,外掛的安裝、更新、刪除都會被封鎖。在多站網路中,只有多站網路管理員可以刪除外掛。

[wp plugin uninstall 外掛名稱 --deactivate] 會先停用外掛,再執行外掛的清理程式碼,連檔案也一併刪除。[wp plugin delete] 不會執行清理程式碼,只刪除檔案,所以若要連資料也一起清理,請使用 uninstall。

[wp-content/mu-plugins] 資料夾中的檔案是不需要啟用、一律會執行的強制使用外掛,所以管理後台沒有 [刪除] 連結。要刪除的話,請用 FTP 或 SSH 直接刪除該資料夾中的檔案。

ℹ️ 聯盟行銷說明
本站內容包含聯盟行銷連結。訪客透過這些連結購買商品或服務時,本站會從賣家獲得佣金。在這個過程中,購買者支付的金額(遇到活動折扣時金額會降低↓)並不會因此提高。刊登的價格、折扣與庫存資訊以撰寫當時為準,可能與實際情況不同,購買前請向賣家做最後確認。商品的挑選與評價依本站自訂的標準撰寫,是否支付佣金不會影響介紹順序或評價內容。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Prove your humanity: 8   +   5   =