WordPress 修訂版本是什麼?找回誤刪內容與比對教學

寫文章寫到一半,整段內容被覆蓋、刪錯,或是改版改到後悔,想找回前一版卻不知道從哪救——這是用 WordPress 寫作幾乎都會遇到的狀況。好消息是,WordPress 早就默默替你留了後路。每次你按下儲存或更新,系統都會把先前的內容存成一份 WordPress 修訂版本,需要時可以翻出來比對、甚至一鍵還原。

問題是這套機制藏在編輯器側邊欄的角落,介面也不算直覺,很多人用了好幾年都不知道它存在,誤刪內容時只能重打。這篇會把修訂版本講清楚:它和自動儲存有什麼不同、存在資料庫的哪裡、怎麼打開比對畫面找回誤刪的段落,以及當修訂版本累積太多、開始拖慢網站時,該怎麼控制數量與清理。

WordPress 修訂版本是什麼,跟自動儲存差在哪

WordPress 修訂版本(Post Revisions)是系統在你每次手動儲存草稿或更新文章時,自動保留的一份內容快照。它從 WordPress 2.6 版就內建至今,目的只有一個:讓你在改錯、刪錯或反悔時,能回頭找到先前的版本。每按一次「儲存草稿」或「更新」,就多一份修訂版本,這些版本會依時間排序累積。

很多人會把修訂版本和「自動儲存」搞混,但兩者是不同的機制,差別值得先弄懂:

  • 修訂版本:對應你每一次「手動」儲存的動作。儲存幾次就留幾份(受設定上限影響),可以逐一翻看、比對、還原。
  • 自動儲存(Autosave):在你沒按儲存時,編輯器於背景定期暫存的進行中內容,預設間隔約 60 秒。關鍵在於,每位使用者對同一篇文章「只會有一份」自動儲存,新的會直接覆蓋舊的,不會每 60 秒就多一筆。

換句話說,自動儲存是給「瀏覽器突然關掉、斷線、當機」時的保命用——重新打開那篇文章時,WordPress 會跳出提示,告訴你有一份備份可以還原。而修訂版本則是長期的版本歷史,記錄你每次刻意儲存的軌跡。自動儲存在技術上也算是一種特殊的修訂版本,但它不會覆蓋已發布的正式內容,回顧版本清單時也會被清楚標示出來。

理解這個區別很重要:當你想找回「上週改之前的那一版」,要找的是修訂版本;當你想救回「剛剛當機前還沒存的那段」,靠的是自動儲存。

修訂版本存在哪裡,為什麼會拖慢網站

修訂版本和你的正式文章一樣,都存在 WordPress 資料庫的 wp_posts 資料表裡。它不是另開一張表,而是以「子項目」的形式掛在原文章底下,被標記成 post_typerevisionpost_statusinherit。WordPress 預設會追蹤標題、作者、內文與摘要這幾個欄位的變化。

這個設計解釋了一個常被誤會的現象:為什麼文章一多、改得一勤,資料庫就會悄悄變肥。假設你有一篇反覆修改的文章存了 30 次,資料庫裡就會多出將近 30 筆 revision 類型的資料;整站幾百篇文章累積下來,光是修訂版本就可能佔掉可觀的空間。

資料庫變大本身不會立刻讓網站出問題,但兩個層面會逐漸受影響:

  • 查詢效率wp_posts 表的資料列愈多,部分查詢與後台操作的負擔就愈重,網站反應可能變慢。
  • 備份與搬家成本:備份檔變大、匯出匯入的時間拉長,搬家或還原時都比較耗時。

要特別提醒的是,很多人以為在後台「永久刪除」一篇文章就會連同它的修訂版本一起清掉,但實際上單純改設定並不會回頭刪除「已經存在」的舊修訂版本。也就是說,就算你今天把上限設低或關閉這個功能,先前累積的那些資料還是留在資料庫裡,得另外動手清理才會消失。

怎麼打開修訂版本畫面找回先前的內容

找回誤刪內容的入口在文章編輯器的側邊欄。操作步驟很短,卻是最多人不知道的功能:

第 1 步、在編輯文章時,打開右側的「設定」側邊欄(齒輪圖示)。

第 2 步、切到「文章」或「頁面」分頁。

第 3 步、找到「修訂版本」(Revisions)這一列,點旁邊的數字——那個數字就是這篇目前累積的版本數。如果這篇文章從沒被儲存超過一次,這一列可能不會出現,因為還沒有版本可看。

點下去之後會進入修訂版本的比對畫面。這裡要注意一個版本差異:WordPress 7.0 起改用了全新的修訂版本畫面,會把變動的文字直接以醒目顏色標示出來;如果你的站還在 6.9 或更早的版本,點進去看到的是「傳統修訂版本畫面」,以左右並排的方式呈現 HTML 內容的差異。兩種畫面的核心邏輯一樣,都是讓你拉動上方的滑桿、或用「上一個/下一個」按鈕,在不同時間點的版本之間切換。

找到你要的那一版後,按下「還原」(Restore)按鈕,這一版的內容就會回填到編輯器裡,覆蓋目前的版本。要強調的是,還原並不會把其他修訂版本刪掉——你只是把某個舊版本「叫回」成現在的內容,整段歷史依然保留,所以還原錯了也能再還原回來,不用擔心一步走錯就回不去。

用滑桿與顏色標記比對兩個版本的差異

修訂版本畫面真正強大的地方,是它會「逐字」標出兩個版本之間到底改了什麼,而不是要你自己用眼睛找。

畫面上方有一條滑桿,拖動它就能在各個版本間移動,下方內容會即時顯示該版本相較於前一版的變化。變動的位置用顏色區分,這是判讀差異的關鍵:

  • 綠色:這一版新增的內容。
  • 紅色:被刪掉的內容。
  • 黃色:有修改、被替換掉的內容。

新增或刪除的整行會被標示出來,連單一字元層級的更動也會額外加上標記,所以即使只是改了一個錯字,也看得出來。滑桿旁邊還有一排彩色的標記點,對應整篇文章裡發生變動的位置與幅度,點一下標記就能直接跳到那個段落,省去逐段捲動的麻煩。如果你只想看純淨的內容、不想被顏色標示干擾,滑桿左側有個「顯示變更」的開關,可以把顏色標示關掉。

光是逐版往前看還不夠時,傳統修訂版本畫面提供了「比對任意兩個版本」的模式。開啟後,滑桿會出現兩個把手:一個代表「比較的起點版本」,一個代表「比較的終點版本」,分別拖動就能直接看出這兩個指定版本之間的所有差異。這對於「我想知道這三週改了哪些東西」這種跨多版的比對特別好用,不必一版一版慢慢推。

實務上,找回誤刪內容的順手做法是:先用滑桿往回拉到「內容還完整」的那一版,用顏色標記確認那段你要的文字確實還在,再決定要整版還原、還是只把那段複製出來、回到目前版本貼回去。後者比較適合「只刪錯一小段、但後面又改了很多不想丟」的情況。

用 wp-config.php 控制修訂版本的數量與自動儲存間隔

如果你覺得每篇都存十幾二十個版本太多,或反過來想保留更完整的歷史,可以透過網站根目錄的 wp-config.php 檔案調整,不必裝任何外掛。

控制修訂版本數量的設定是 WP_POST_REVISIONS,把下面這行加在 wp-config.php 裡(要放在 require_once(ABSPATH . 'wp-settings.php'); 這一行的上方):

define( 'WP_POST_REVISIONS', 5 );

這個常數的幾種值代表不同行為:

  • true-1:這是預設值,保留每一次的修訂版本,不設上限。
  • false0:完全不保留修訂版本(但每篇仍會保有一份自動儲存)。
  • 大於 0 的整數(例如 3510):每篇文章最多保留這麼多份修訂版本,當文章再次被更新時,最舊的會自動被刪掉,騰出空間給新的。

對多數內容型網站來說,把上限設在 5 到 10 之間通常是務實的折衷:既留得住足夠的還原空間,又不會讓資料庫無限膨脹。

另一個相關的設定是自動儲存的間隔,用 AUTOSAVE_INTERVAL 控制,單位是秒,預設 60 秒:

define( 'AUTOSAVE_INTERVAL', 120 );

把數字調大(例如 120),自動儲存的頻率就會降低;不過自動儲存因為只保留一份、會互相覆蓋,並不是資料庫變肥的主因,所以這個值通常不太需要動。

如果你不想直接設一個全站固定的上限,而是想針對特定文章類型給不同的保留數,可以改用 wp_revisions_to_keep 這個過濾器(filter),寫進佈景主題的 functions.php,依文章動態回傳要保留的數量——這屬於進階做法,一般使用者用 wp-config.php 設一個全站值就夠了。

修訂版本太多時清掉舊資料的幾種做法

前面提過,調低上限或關閉功能只會影響「之後」的版本,已經堆積的舊修訂版本不會自動消失,得另外清。常見的清理方式有三種,從最安全到最進階排列:

用資料庫最佳化外掛清理。 像 WP-Optimize 這類最佳化外掛,後台裡會有「清除所有文章修訂版本」之類的選項,勾選後一鍵清掉。這是最推薦給一般使用者的做法,不用碰程式碼、也不用直接操作資料庫,誤刪風險最低。

用修訂版本管理外掛控制與刪除。 有些專門管理修訂版本的外掛(例如 Revision Control 一類)可以分別針對文章與頁面設定保留數量,也能在編輯文章時逐篇選擇要不要啟用這個功能,適合想做細部控制的人。

直接在資料庫執行 SQL 刪除。 進階使用者可以透過 phpMyAdmin 等資料庫管理工具,執行 SQL 指令把 post_typerevision 的資料整批刪掉。這個方法最快、最徹底,但風險也最高——一旦下錯指令可能誤刪正式內容,而且還涉及清理相關聯的中繼資料(wp_postmeta)與分類關聯(wp_term_relationships),步驟較多。動手前務必先完整備份整個資料庫,並確認資料表前綴是否為預設的 wp_(有些網站基於安全考量改過前綴),不要照抄網路上的指令就直接執行。

要不要把修訂版本關掉或清光,其實沒有標準答案,取決於你怎麼權衡。內容反覆修改、很在意能不能還原的人,留著合理數量的版本是值得的保險;網站文章量大、又對效能與備份大小特別敏感的,把上限壓低、定期清理舊資料會更實際。比較理想的折衷,是設一個適中的保留上限(例如每篇 5 到 10 份),再搭配最佳化外掛定期清掉超量的舊版本,兩邊兼顧。

回到最初的情境:下次再遇到內容被改壞、段落誤刪,先別急著重打。打開編輯器側邊欄點開修訂版本,拉動滑桿、看著綠紅黃的標記找到對的那一版,多半都救得回來。把這個功能摸熟,再順手設好保留上限與清理節奏,你既能享受「隨時能反悔」的安全感,也不會讓累積的舊版本悄悄拖慢你的網站。

相關文章
標籤: 資料庫最佳化, WordPress 修訂版本, 文章版本還原, 自動儲存, wp-config 設定