如何更新WordPress主題:安全而深入的指南

如何更新WordPress主題:安全而深入的指南

WordPress 主題是 WordPress 網站最重要的組成部分之一。它決定著網站的外觀、內容的顯示方式,讓網站看起來更現代、更專業、更符合品牌形象。

因此,及時更新主題並確保其始終正常執行非常重要。

但有時這並不完全簡單。如果您已經定製了 WordPress 主題,更新它就意味著您有可能丟失自己的作品。如果您網站中的外掛與新版本的主題不相容,您需要決定哪些程式碼需要更新,哪些不需要更新。如果你正在使用自己定製的主題執行 WooCommerce 商店,那麼你需要確保更新後它能正常執行。

在本篇文章中,我將教你如何更新 WordPress 主題。

為什麼要不斷更新 WordPress 主題?

保持 WordPress 網站程式碼最新是非常重要的。新版本的外掛、主題和 WordPress 本身的釋出都是有原因的。不及時更新可能會給您的網站帶來風險。讓我們來看看您應該始終保持網站更新的三個原因:安全性、相容性和功能。

#1 安全性

確保網站程式碼始終處於更新狀態的最重要原因是安全性

主題、外掛和 WordPress 核心的更新中有很大一部分是安全補丁:旨在克服任何安全漏洞的小版本。

由於 WordPress 是一個開放原始碼系統,有一個活躍的社羣來監控軟體的安全問題和其他問題,因此任何安全漏洞都會被公開討論並儘快修復。

這也是 WordPress 的優點之一:活躍的社羣可以確保快速發現並修復漏洞。

但這也有不利的一面:這一切的公開性意味著,任何想攻擊你網站的人都會知道某個版本的主題存在問題。他們可能會瞄準使用該版本主題的網站。

因此,一旦有更新發布,您需要立即更新主題、外掛和 WordPress 核心,以避免成為攻擊目標。

如果你安裝了一個好的安全外掛,當有新版本的主題釋出時,你就會收到提醒,這樣你就沒有藉口不執行更新了。下面,我將介紹如何安全地進行更新,以便網站在更新期間和更新後仍能順利執行。

現在,你應該相信:保持網站更新會增強其安全性。

#2 相容性

主題更新也是為了確保與最新版本的 WordPress 相容。這要麼在 WordPress 新版本釋出後立即進行,要麼在短時間內完成。優秀的主題開發者會根據 WordPress 的新版本(以及建立時的開發版本)測試他們的主題,並做出任何必要的更改以保證相容性。

不過,隨著時間的推移,WordPress 會不斷推出新版本,您的主題可能會出現相容性問題。根據我的經驗,與外掛相比,主題出現不相容問題的情況要少得多,但這仍然是您需要注意的問題。

更新主題時,應首先確保執行的是最新版本的 WordPress

#3 功能

保持主題更新的第三個原因是充分利用開發人員可能新增到主題中的新功能。

主題時不時會更新一些新功能,這可能是因為使用者需要額外的功能,也可能是因為主題可以利用 WordPress 本身的新功能(我說的是 Gutenberg),併為主題新增額外的功能。

如果你的主題有新功能可以增強你的網站,為什麼不加以利用呢?

如何在 WordPress 中更新主題(兩種方法)

更新主題是網站日常維護的一項重要任務。在執行任何更新之前,一定要對網站進行備份。

以下是在 WordPress 中更新主題的方法:

  1. 如果您的主題沒有自定義,請轉到 外觀 > 主題 > 點選活動主題上的 “立即更新”。
  2. 如果您的主題包含自定義程式碼,使用最新版本更新主題將覆蓋您的所有自定義設定。要安全地更新自定義主題,請使用子主題。

如何安全地更新 WordPress 主題

在 WordPress 中更新主題非常簡單。只需進入儀表盤 > 更新並選擇主題,然後點選更新主題按鈕即可。

更新主題

更新主題

但是,等等!你可能認為只需點選更新按鈕就可以了,對嗎?當然,這可以更新主題。但這樣做並不安全。

每次更新 WordPress 網站的任何元素(主題、外掛或 WordPress 核心)時,您都應該備份網站並測試更新後的軟體,以檢查是否一切正常。為了在不觸及您的 WordPress 實時網站的情況下完成這項工作,您應該先在您網站的 WordPress 暫存版本上執行更新。

讓我們來詳細看看如何做到這一點。

先進行備份

在對網站進行更新之前,一定要進行備份。這樣,如果更新導致網站崩潰,你就有東西可以還原網站了。

如果您遵循以下建議並始終先在暫存伺服器上進行測試,那麼您就不太可能遇到任何問題:畢竟您已經測試過了。不過,安全總比遺憾好。

寶塔面板提供計劃任務執行自動備份
寶塔面板提供計劃任務執行自動備份

如果您沒有使用寶塔,而且您的主機提供商不提供簡單的網站備份,那麼您就需要使用備份外掛。免費的 Updraft Plus 外掛可以讓您執行自動和手動備份,恢復起來也相對簡單。當然,許多網站還提供快照服務支援,執行更新前生成一個伺服器快照也是可以的。

何時執行更新

首先,值得確定的是執行更新的最佳時間。您希望儘量減少停機時間或對網站訪問者造成的干擾,這意味著在一天中訪問者數量最少的時候(或一週中的某一天)執行更新是合理的。

不要認為這是一天中您最不可能使用網站的時間:如果您有大量來自海外的訪客,那麼當您在睡覺時,訪客數量可能會激增。

使用谷歌分析等工具確定網站訪問量最少的時間,並據此安排更新。

一旦掌握了這些資訊,您就可以安排每天或每週的那個時間段進行網站更新。此時,您不需要在暫存網站上進行測試:您可以在方便的時候進行測試。但更新到實時網站會造成一定的停機時間,因此要將更新安排在影響最小的時間。

Easy Updates Manager 外掛的高階版本可讓您自動更新或手動安排更新。

Easy Updates Manager 外掛

Easy Updates Manager 外掛

使用暫存網站

進行更新在對主題進行更新之前,您應始終測試更新是否能正常執行,是否與網站中的其他程式碼發生衝突,以及更新後網站是否仍能正常執行。

要做到這一點,您需要一個對公眾不可見的網站副本,您可以安全地破壞它而不會造成任何不必要的後果。

測試的最佳場所是暫存網站。這是因為暫存網站與真實網站位於同一伺服器上,是真實網站的複製品。這就意味著,在暫存網站上執行的任何程式也將在您的實時網站上執行。

測試更新

您已經建立了暫存網站,準備安裝主題更新並進行測試。接下來該怎麼做?

請按照以下步驟操作。

  1. 檢查主題是否與您的 WordPress 版本相容。如果不相容,您可能需要更新 WordPress(這始終是首要任務)。按照此測試流程進行更新,使用暫存站點測試更新,然後推送到實時站點。
  2. 在 WordPress 管理頁面的 “主題” 介面更新主題,方法是點選主題名稱下方的 “更新” 連結,如果您從第三方供應商處購買了主題,則上傳新版本。
  3. 測試網站的暫存版本是否正常執行。測試不同的內容型別(主頁、單個帖子和頁面、存檔頁面、任何自定義帖子型別或分類法)。檢查小工具選單是否存在問題。測試表單提交或購買等流程。您需要測試的內容取決於您的網站,但一定要全面;如果您快速瀏覽網站,而沒有測試所有內容型別和流程,您可能會發現使用者比您更早發現問題,可能是在他們購買或填寫表格時。
  4. 如果主題更新導致網站崩潰,請檢視主題的支援論壇,看看是否存在任何已知問題。您可以開啟管理介面中的 “主題” 頁面,點選主題獲取相關資訊。點選連結檢視該版本的詳細資訊,然後在右側邊欄中找到檢視支援論壇按鈕。檢視是否有其他人遇到過問題。
  5. 如果您遇到了問題,但沒有其他人報告過,請向主題開發人員報告。這將有助於他們解決問題。然後,當他們釋出後續版本的主題時,你需要重複這一過程,希望他們能修復。
  6. 如果一切正常,你就可以將暫存網站推向上線,因為你已經徹底測試過了。

如何更新自定義 WordPress 主題

但如果您已經編輯了主題,並希望在不丟失更改的情況下進行更新,該怎麼辦呢?

這就比較麻煩了,但也不是不可能,只要你還記得修改了什麼,或者更具體地說,你編輯了哪些檔案。

使用子主題避免更新自定義 WordPress 主題時出現問題

更新自定義 WordPress 主題最安全的方法是建立一個子主題並在其中新增您的自定義設定。如果您不確定自己的網站是否使用了子主題,可以使用我們的 WordPress 主題檢測工具來檢查網站。

為此,您需要用編輯過的主題檔案建立一個子主題。請在您的暫存網站上按照以下步驟操作(因為如果您沒有 100% 正確操作,可能會破壞您的實時網站)。

  1. 備份父主題並將其複製到本地計算機。這就意味著你擁有一份修正版主題的副本,以防在更新主題後遺漏任何內容並需要進行編輯。
  2. 為現有主題建立子主題。新增包含父主題詳細資訊的樣式表(見上文)和從父主題獲取樣式的函式檔案。
  3. 確定你對父主題的函式檔案所做的任何修改。將新功能複製到子主題的功能檔案中。
  4. 確定你對父主題樣式表所做的任何修改。將這些程式碼複製到子主題的樣式表中。這將覆蓋父主題中相同元素、類或 ID 的樣式。
  5. 找出你編輯過的模板檔案或包含檔案。將這些檔案複製到子主題中,如果檔案位於子目錄中,請確保使用相同的檔案結構。
  6. 啟用子主題,而不是父主題。
  7. 測試網站。檢查你對主題所做的任何定製,特別是檢查使用你編輯並複製過來的模板檔案顯示的頁面。
  8. 仔細檢查檔案,確保沒有遺漏任何編輯過的檔案。
  9. 更新暫存網站中的父主題,可以通過 “主題 “螢幕更新,如果沒有從主題目錄中獲取主題,也可以通過上傳主題的方式更新。
  10. 再次測試網站。確保你編輯的任何模板檔案都能正常工作。如果缺少任何內容,請重新檢視父主題編輯版本的備份,並將需要的內容複製到子主題中。
  11. 再次測試。當您對暫存網站的執行情況感到滿意時,就可以將暫存更改推送到實時網站(確保您先備份了實時網站)。測試您的實時網站,然後就可以開始了。

完成這些操作後,下次更新父主題時就不需要再重複這些操作了。但請記住:如果將來需要進行更多更改,請對子主題而不是父主題進行更改。在進行任何更改之前,請先備份子主題,在暫存網站上測試所有內容,為了完全徹底,請使用 Github版本控制系統

GitHub 網站

GitHub 網站

更新父主題: 對子主題進行任何更改

有時您可能會發現,在更新父主題後,由於對子主題所做的更改而導致網站崩潰。

也許你在父主題的鉤子上附加了一個函式,而這個鉤子已經被修改甚至刪除了。也許你的子主題的模板檔案與父主題的模板檔案不再一致,這意味著你的子主題生成的頁面與網站的其他部分不一致。

如果出現這種情況,你需要做以下兩件事之一:

  • 從子主題中刪除相關檔案,停止使用子主題中的相關檔案。有時,父主題的更新意味著它的執行方式比子主題更適合你,因此你不再需要該檔案。一旦你刪除了子主題中的檔案,WordPress 就會使用父主題中的檔案。
  • 編輯子主題中的檔案,使它們與父主題保持一致。

如果您選擇上述第一種方法,請確保在您的暫存網站上進行測試,並在編輯之前保留子主題的備份。同樣,使用 Github 可以幫助你隨時瞭解更改情況。

如果你需要使用第二種方法編輯子主題檔案,你需要明確你做了哪些改動,對父主題做了哪些改動,以及它們之間是如何互動的。比較父主題和子主題之前版本和新版本的程式碼是很有必要的。這樣你就能發現問題所在並加以解決。

閱讀此次釋出的父主題的文件:主題庫中的釋出說明,或開發者網站上更詳細的文件。這將有助於你識別主題中影響子主題的任何更改。

再次強調,請務必保留備份並進行全面測試。

如何定製 WordPress 主題以便將來安全地更新它

如果您還沒有定製過主題,但正打算這麼做,那麼可以從一開始就將您的定製新增到子主題中,這樣可以讓事情變得更簡單。

如果你直接從主題目錄或主題供應商處編輯主題,那麼在更新主題時,你對主題所做的任何更改都會丟失。新的主題檔案會覆蓋你編輯過的檔案,你的所有工作都將付諸東流。

這就是為什麼你不應該直接編輯第三方主題的原因。編輯第三方主題的正確方法是為該主題建立一個子主題,並在其中新增你的編輯內容。

讓我們來詳細瞭解一下子主題:它們是如何工作的,以及如何使用它們來安全地更新(和編輯)您的自定義 WordPress 主題。

使用子主題避免更新主題時出現問題

子主題是與父主題協同執行網站的主題。它可以為父主題新增額外的功能,如設計元素和功能,但不會覆蓋父主題。相反,您在子主題中建立的特定檔案將覆蓋父主題中同名的特定檔案。這與 WordPress 模板層次結構相結合,可以告訴 WordPress 使用哪個主題模板檔案來顯示網站上的某個頁面。

如果你對主題模板檔案一無所知,感到困惑,讓我舉例說明。

您現有的主題有三個用於顯示檔案頁面的檔案:

  • category.php 檔案,用於顯示分類的存檔頁面。
  • archive.php 檔案,該檔案將顯示所有存檔型別,除非存在更具體的檔案(如 category.php)。這意味著該檔案將用於標籤存檔(例如),但不用於類別存檔。
  • index.php檔案,這是一個後備檔案,用於沒有更具體檔案的任何內容型別。在這種情況下,由於存在 archive.php 檔案,任何存檔頁面都不會使用 index.php 檔案。

在網站上顯示歸檔檔案時,WordPress 會執行這個層次結構,並選擇最先顯示的檔案。如果是分類歸檔,則是 category.php。如果是標籤歸檔,則是 archive.php,因為主題沒有 tag.php 檔案。

但如果你建立了一個子主題,WordPress 總是會選擇子主題中層次結構最高的檔案,而不是父主題中的檔案。

也就是說,如果你建立的子主題有一個 archive.php 檔案,就會出現以下情況:

  • 對於分類,WordPress 會使用父主題中的 category.php,因為它在層次結構中較高。
    對於標籤,WordPress 會使用子主題中的 archive.php,因為子主題中的同名檔案會覆蓋父主題中的同名檔案。

這意味著,如果你想編輯主題中的某個檔案,只需建立一個子主題,將父主題中的檔案複製到子主題中,然後進行編輯即可。父主題中的原始檔案不會被觸動,因此當你更新主題時,不會丟失任何工作。這也意味著即使更新後,WordPress 也會使用子主題中的 archive.php 檔案,而不是父主題中更新後的 archive.php 檔案。

這對更新主題有兩個影響:

  • 建立子主題意味著你可以更新父主題,而不會丟失你的編輯內容。
  • 更新父主題時,需要檢查程式碼中是否有與子主題衝突的更改。

我們很快就會談到第二點。但如何使用子主題來儲存你可能想對主題進行的任何編輯呢?讓我們一起來看看。

  1. 建立你的子主題,它需要一個樣式表和一個函式檔案,你可以從中呼叫父主題的樣式。
  2. 確定要編輯父主題中的哪些檔案。
  3. 如果要編輯的檔案是功能檔案或樣式表,請不要複製它們,而是將新程式碼新增到已在子主題中建立的樣式表和功能檔案中。
  4. 如果要編輯的主題是模板檔案或包含檔案,請在子主題中複製這些檔案,從父主題中完全複製。複製時請使用相同的檔案結構,例如,如果迴圈檔案位於父主題資料夾/包含檔案/loop.php,則將其複製到子主題資料夾/包含檔案/loop.php。
  5. 編輯子主題中的檔案。
  6. 在 WordPress 管理介面啟用子主題,而不是父主題。

就是這樣!唯一的額外工作就是建立子主題,而建立子主題非常簡單快捷。現在,無論何時需要更改主題,只需編輯子主題即可。這樣,當你更新父主題時,就不會丟失你的工作了。

如何在 WooCommerce 網站上更新 WordPress 主題

如果您正在使用 WooCommerce,那麼您可能已經編輯了主題,使其與 WooCommerce 相容

這隻有在您使用的是 3.3 版之前的 WooCommerce 版本時才有必要。WooCommerce 團隊的建議是升級外掛,然後你就會發現不需要在主題中新增額外程式碼來確保相容性了。

但如果由於某種原因,你無法升級到當前版本的 WooCommerce(我不建議這樣做),那麼你就需要在更新主題之前,將你對主題所做的修改複製到一個子主題中。

你需要採取以下兩種方法之一:

  • 如果你在主題中建立的 woocommerce.php 檔案中新增了 woocommerce_content()函式,只需將該檔案複製到子主題中,並將當前主題作為父主題即可。
  • 如果使用了 WooCommerce 鉤子,請將程式碼從主題的功能檔案複製到子主題的功能檔案中。不要複製整個檔案,只需複製程式碼即可。

更常見的情況是,您在主題中新增了額外的模板檔案,以覆蓋 WooCommerce 的模板檔案。這適用於任何版本的 WooCommerce

如果你這樣做了,你需要建立一個子主題,然後將這些模板檔案複製到你的子主題中。確保使用與原主題相同的檔案結構。然後按照上面的說明啟用子主題,測試並更新父主題。

完成上述步驟後,您需要進行比無店鋪網站更全面的測試。除了對網站進行更全面的測試(見上文),您還應該測試商店的執行情況。測試商店主頁面、產品分類頁面、單個產品頁面和結賬流程。確保一切正常執行後,再將更改推送到正式網站。

小結

現在您已經知道為什麼更新 WordPress 主題很重要了,最重要的是知道如何根據不同情況更新主題了。一個最新的主題將更加安全,與 WordPress 核心相容,並能受益於任何新功能。

但正確更新也很重要。在執行更新之前,一定要進行備份,先在您的暫存網站上進行測試,然後才能將更改推送到實時網站。

如果你對主題做了任何更改,就會有額外的工作。請先建立一個子主題,並在其中新增您所做的或需要做的任何更改。這樣,當你更新父主題時,你的更改就不會丟失。

評論留言