如何更新WordPress主題 – 您的安全和深入的指南

您的WordPress主題是您的WordPress網站最重要的方面之一。它控制著您網站的外觀,內容的顯示方式,使您的網站看起來更現代,更專業,更具品牌。

這就是為什麼保持主題更新並確保它始終按預期工作的重要性。

但有時這並不完全是直截了當的。如果您已定製主題,則更新它意味著您可能會失去工作。如果您站點中的插件與主題的新版本不兼容,則需要確定要更新哪些代碼以及不更新哪些代碼。如果您正在運行一個具有您自定義主題的WooCommerce商店,則需要確保在更新後此功能正常運行。

厭倦了緩慢的WordPress主機和subpar支持?我們在Kinsta做不同的事情。查看我們的託管計劃

在這篇文章中,我將引導您完成如何更新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中更新主題對您來說非常簡單。只需轉到Dashboard> Updates並選擇您的主題,然後單擊Update Themes按鈕。

在WordPress中更新主題

更新主題

可是等等!您可能認為您只需單擊「更新」按鈕即可完成,對吧?當然,這將更新您的主題。但它不會安全地做到這一點。

每當您更新WordPress網站的任何元素(主題,插件或WordPress核心)時,您應該備份您的網站並測試更新的軟體以檢查是否所有內容都發生了咔嗒聲。要在不觸及您的實時WordPress網站的情況下執行此操作,您應首先在網站的暫存版本上運行更新。

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

首先備份

停止!在您的站點上運行更新之前,必須始終始終進行備份。這樣,如果更新破壞了您的網站,您就可以從中恢復您的網站。

如果您遵循以下建議並始終首先在登台伺服器上進行測試,那麼您很可能會遇到任何問題:畢竟,您已經測試過了。但是安全比抱歉更好。

每日自動備份

Kinsta每日自動備份

使用Kinsta託管,您可以訪問站點的每日自動備份。但您也可以在更新前立即進行手動備份。這是我建議的,因為自上次自動備份以來,您的網站可能已經發生了變化。

要進行手動備份,請轉到Kinsta儀錶板中的站點,選擇菜單中的「備份」選項,然後選擇「手動」選項卡。從這裡,您最多可以進行五次手動備份,每次備份將保留14天。

Kinsta手動備份

Kinsta手動備份

如果在更新過程中出現任何問題並且您需要還原站點,則只需單擊一下即可還原備份。

訪問Kinsta儀錶板中的「備份」屏幕,選擇備份,然後單擊「還原到」按鈕。您可以選擇恢復到臨時站點或實時站點。請確保快速執行此操作,因為您不希望在運行備份後丟失對站點所做的任何更改(例如,其他用戶添加內容)。

如果您沒有使用Kinsta並且您的託管服務提供商不能輕鬆備份您的網站,那麼您將需要使用備份插件。免費的Updraft Plus插件可讓您運行自動和手動備份,並使恢復相對簡單。但如果您使用Kinsta,則不需要備份插件,因為所有Kinsta計劃都包含自動備份。

何時運行更新

首先,值得確定運行更新的最佳時間。您希望最大限度地減少網站訪問者的停機時間或中斷,這意味著在訪問者數量最低的一天(或一周的某一天)運行更新是有意義的。

不要認為這是在您最不可能使用您的網站的時候:如果您有大量來自海外的訪問者,那麼當您睡著時,數字可能會飆升。

使用Google分析等工具來確定您的網站訪問次數最少並相應地安排更新。

獲得此信息後,您可以安排一天中的某個時間或一周中的某天的網站更新。此時您不需要在暫存站點上進行測試:只要方便,您就可以執行此操作。但是對實際站點的更新將導致一些停機時間,因此將其安排在最不具破壞性的時間。

Easy Updates Manager插件的高級版本允許您自動更新或手動安排更新。

Easy Updates Manager插件

Easy Updates Manager插件

使用暫存站點進行更新

在對主題進行更新之前,您應該始終測試更新是否正常工作,不會與您網站中的任何其他代碼衝突,並且該網站在更新後仍然有效。

要做到這一點,您需要一份對公眾不可見的網站副本,並且您可以安全地破解而不會產生任何不當後果。

最好的測試地點是臨時站點。這是因為暫存站點與您的實時站點位於同一伺服器上,而且它是它的副本。這意味著您的暫存網站上的任何工作都可以在您的實際網站上運行。

WordPress登台環境

Kinsta登台環境

Kinsta為您的每個站點提供一鍵式登台環境。在測試主題更新之前,您需要刷新暫存站點。您可以通過刪除現有的並創建一個新的來完成此操作。或者,您可以使用剛剛對您的實際網站進行的備份,並將其恢復到您的暫存網站。

在MyKinsta中創建的暫存站點

在MyKinsta中創建的暫存站點

在暫存後獲得實時網站的副本時,您需要使用網址https://staging-sitename.kinsta.cloud,其中sitename是您網站的名稱。這將帶您進入登台站點,您可以登錄,更新和測試。

在暫存站點上測試更新後(稍後會更多),您可以返回MyKinsta儀錶板中的暫存環境,然後單擊Push Staging to Live按鈕。這會將您對暫存網站所做的所有更改複製到您的實際網站。不要忘記對您的實際網站進行最終檢查,以確保一切正常。

測試更新

因此,您已經創建了臨時站點,您已準備好安裝主題更新,並且您想要測試它。接下來是什麼?

跟著這些步驟。

  1. 檢查主題是否與您的WordPress版本兼容。如果沒有,您可能需要更新WordPress(始終優先)。按照此更新的測試過程,使用您的暫存站點測試更新,然後推送到實時。
  2. 從WordPress管理員的主題屏幕更新主題,方法是單擊主題名稱下方的更新鏈接,或者如果您從第三方提供商處購買主題,則上傳新版本。
  3. 測試站點的暫存版本是否有效。測試不同的內容類型(主頁,個人帖子和頁面,存檔頁面,任何自定義帖子類型或分類)。檢查小部件或菜單是否存在任何問題。測試流程,例如表單提交或購買。您需要測試的具體內容取決於您的網站,但要徹底檢查是非常重要的。如果您快速瀏覽網站並且不測試所有內容類型和流程,您可能會發現用戶在您做之前發現任何問題,可能是在他們進行購買或填寫表單時。
  4. 如果主題更新已破壞網站,請查看主題支持論壇以查看是否存在任何已知問題。您可以通過打開管理員中的「主題」屏幕並單擊主題來訪問有關它的信息來訪問它。單擊此鏈接以獲取此版本的詳細信息,然後在右側邊欄中,您將找到「查看支持論壇」按鈕。檢查一下,看看是否有其他人遇到了問題。
  5. 如果您遇到問題且沒有其他人報告過,請將其報告給主題開發人員。這將有助於他們解決它。然後,當他們發布主題的後續版本時,你需要重複這個過程,希望有一個修復。
  6. 如果一切正常,您可以將分段站點推向現場,安全地知道您已經對其進行了全面測試。

如何更新自定義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主題。

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

子主題是與您的父主題協同工作以運行您的網站的主題。它為父主題添加了額外的功能,例如設計元素和功能,而不會覆蓋父主題。而是在子主題中創建特定文件,這些文件將覆蓋父主題中具有相同名稱的特定文件。這與WordPress模板層次結構相結合,告訴WordPress使用哪個主題模板文件來顯示您網站上的給定頁面。

如果你對主題模板文件一無所知並且感到困惑,那麼讓我舉一個例子來說明。

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

  • php,它將顯示類別的存檔頁面。
  • php,它將顯示所有存檔類型,除非存在更具體的文件(例如category.php)。這意味著此文件將用於標記存檔(例如),但不用於類別存檔。
  • index.php文件,它是任何沒有更具體文件的內容類型的後備文件。在這種情況下,因為存在archive.php文件,所以沒有存檔頁面將使用index.php文件。

在您的站點上顯示存檔時,WordPress將運行此層次結構並選擇它首先出現的文件。對於類別檔案,這將是category.php。對於標記存檔,它將是archive.php,因為主題沒有tag.php文件。

但是,如果您創建一個子主題,WordPress將始終選擇子主題中的最高文件,而不是父主題中的一個。

這意味著如果您使用archive.php文件創建了一個子主題,則會發生以下情況:

  • 對於類別,WordPress將使用父主題中的category.php,因為它在層次結構中更高。
  • 對於標記,它將使用子主題中的archive.php,因為子主題中具有相同名稱的文件會覆蓋父主題中具有該名稱的文件。

這意味著如果要編輯主題中的文件,則創建子主題,將該主題從父主題複製到子主題,然後進行編輯。來自父主題的原始文件不受影響,因此當您更新主題時,您將不會丟失任何工作。這也意味著即使在更新後,您的子主題中的archive.php文件也將被WordPress使用,而不是來自父主題的更新的archive.php文件。

這對更新主題有兩個含義:

  • 創建子主題意味著您可以更新父主題而不會丟失編輯。
  • 更新父主題時,您需要檢查代碼的任何更改,這些更改將與您的子主題衝突。

我們很快就會到第二點。但是,如何使用子主題來保存您可能想要對主題進行的任何編輯?讓我們來看看。

  1. 創建子主題,這需要一個樣式表和一個函數文件,您可以從父主題中排列樣式。
  2. 確定要編輯的父主題中的哪些文件。
  3. 如果要編輯的文件是函數文件或樣式表,請不要複製它們,而是將新代碼添加到已在子主題中創建的樣式表和函數文件中。
  4. 如果要編輯的主題是模板文件或包含文件,請在子主題中複製這些文件,並從父主題中複製它們。使用相同的文件結構複製它們,因此,例如,如果循環文件位於parent-theme-folder / includes / loop.php,則將其複製到child-theme-folder / includes / loop.php。
  5. 編輯子主題中的文件。
  6. 在WordPress管理屏幕中激活子主題,而不是父主題。

就是這樣!唯一的額外工作是創建兒童主題,這是快速和簡單的。現在,只要您需要對主題進行更改,您只需編輯子主題即可。這樣,當您更新父主題時,您將不會丟失您的工作。

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

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

只有在版本3.3之前使用的是WooCommerce版本時,才需要這樣做。 WooCommerce團隊的建議是升級插件,然後您會發現您不需要主題中的額外代碼來確保兼容性。

但如果由於某種原因您無法更新到當前版本的WooCommerce(我不建議這樣做),您需要先將對主題所做的更改複製到子主題中,然後才能更新主題。

您需要通過以下兩種方式之一來解決這個問題:

  • 如果您將woocommerce_content()函數添加到您在主題中創建的woocommerce.php文件中,只需將該文件複製到子主題,使用當前主題作為父主題。
  • 如果您使用了WooCommerce掛鉤,請將主題函數文件中的代碼複製到子主題中的函數文件中。不要複製整個文件;只是那個代碼。

更常見的情況是,如果您在主題中添加了額外的模板文件以覆蓋WooCommerce的模板文件。這與任何版本的WooCommerce都有關係。

如果您已完成此操作,則需要創建子主題,然後將這些模板文件複製到您的子主題。確保使用與原始主題中相同的文件結構。然後按照上面的說明激活子主題,測試並更新父主題。

完成此操作後,您需要進行比沒有商店的網站更全面的測試。除了更一般地測試您的網站(見上文),您應該測試您的商店的工作。測試主店鋪頁面;產品類別頁面;個別產品頁面;和結帳過程。在將更改推送到實際站點之前,請確保一切正常。

摘要

您現在知道為什麼保持WordPress主題更新非常重要,最重要的是,如何根據不同的場景更新它。最新的主題將更安全,將與WordPress核心兼容,並將受益於任何新功能。

但正確更新很重要。在運行更新之前始終進行備份(如果您使用的是Kinsta,則不必擔心這一點),首先在暫存站點上進行測試,然後才應將更改推送到實時。

如果您對主題進行了任何更改,則會有額外的工作。首先創建一個子主題,然後添加您已經或需要進行的任何更改。這樣,更新父主題時,您的更改不會丟失。

9.4K股

.essb_links .essb_links_list li a {margin-top:0px; } @media only screen and(min-width:64em){.container – narrow.pb – 60,.knowledgebase .user-content {position:relative; } .widget-share {position:absolute;左:-200px;頂部:0px;身高:100%;寬度:200px; box-sizing:border-box; } .widget-share-aligner {width:200px; padding-right:62px; box-sizing:border-box; } .widget-share-inner {padding-bottom:62px; } .knowledgebase .user-content .widget-share-inner {padding-top:0; } .widget-share .amount {display:flex; align-items:center;證明內容:flex-end;寬度:100%;保證金右:11像素; font-size:14px;字體重量:500;邊距:10px的; } .widget-share .amount svg {margin-right:8px;保證金左:10px的; } .essb_links .essb_links_list {flex-direction:column; align-items:flex-end; } .essb_links .essb_links_list li {display:block; margin-bottom:5px!important; } .widget-share__total {margin-bottom:0px!important; } .widget-share__total .heading – small {color:#999999;字體大小:14px的; font-weight:300; } .essb-total-value {margin-right:4px; } .essb_links {margin:0px;填充:0像素; } .essb_counter_right {display:none!important; } .essb_links.essb_template_circles-retina .essb_link_hackernews a,.essb_links.essb_template_circles-retina .essb_link_reddit a,.essb_links.essb_template_circles-retina .essb_link_mail a,.essb_links.essb_template_circles-retina .essb_link_mwp a,.essb_links.essb_template_circles-retina .essb_link_buffer a ,.essb_links.essb_template_circles-retina .essb_link_linkedin a,.essb_links.essb_template_circles-retina .essb_link_facebook a,.essb_links.essb_template_circles-retina .essb_link_twitter a {color:#43414e!important;背景:#f3f3f6!important; } .essb_links.essb_template_circles-retina li a:focus,.essb_links.essb_template_circles-retina li a:hover {border-color:#fff!important;背景:#43414e!important; {.binter-color:#f3f3f6!important;背景:#f3f3f6; } .essb_links .essb_icon:在{font-size:15px!important;之前頂:8像素;左:9px; } .essb_links .essb_icon {width:32px;高度:32PX; } .essb_links.essb_counter_modern_right .essb_counter_right {background:#f3f3f6!important; } @media only screen and(max-width:63.999em){。widget-share-aligner {position:relative!important;頂部:0!重要; } .essb_links .essb_links_list li {margin-right:8px!important; }}

相關文章