日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何開發(fā)一款WordPress子主題

您已經(jīng)運(yùn)行wordpress網(wǎng)站一段時(shí)間了,它一直在做您需要做的事情。但是現(xiàn)在,您決定需要對(duì)其進(jìn)行自定義。

塔什庫爾干塔吉克網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)公司2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。

或者,您可能正在使用從主題目錄下載的主題或已購買的主題創(chuàng)建站點(diǎn),但您意識(shí)到它不能完全按照您的需要運(yùn)行。

那你怎么辦呢?

您可以找到一個(gè)插件來提供您需要的自定義或切換到新主題。但是,如果您對(duì)當(dāng)前的主題感到滿意并且找不到可以添加您需要的功能的插件怎么辦?

答:您需要自定義您的主題。最佳實(shí)踐說:您通過(WordPress)子主題來做到這一點(diǎn)。

在本教程中,我們將更多地討論子主題是什么以及它是如何工作的。我們還將帶您完成從頭開始創(chuàng)建主題的過程,并向您展示如何將修改后的主題變成子主題。

修改現(xiàn)有主題是開始WordPress開發(fā)的好方法。更改的結(jié)果將很容易看到和理解。但是,直接對(duì)活動(dòng)主題進(jìn)行編輯可能會(huì)導(dǎo)致問題,因?yàn)榧词故且粋€(gè)小錯(cuò)誤也可能導(dǎo)致主題無法使用。每當(dāng)主題更新時(shí),您所做的所有更改也將丟失。

然而,有一種方法可以避免這些問題,那就是創(chuàng)建“子主題”。子主題的工作方式與任何其他WordPress主題大致相同,不同之處在于它使用現(xiàn)有主題作為基礎(chǔ)(或“父”)。您對(duì)子主題所做的更改將反映在您的站點(diǎn)上,而無需直接更改父主題。

自定義WordPress的方法

自定義主題有風(fēng)險(xiǎn)。如果您在第三方主題(例如您從市場(chǎng)上購買的主題)中編輯代碼,那么當(dāng)您下次更新主題時(shí),您所做的所有更改都將丟失。這意味著您的網(wǎng)站不僅會(huì)恢復(fù)原狀,而且您的所有工作都被浪費(fèi)了。

可以通過三種方式自定義您的WordPress網(wǎng)站:

  • 直接編輯您的主題。
  • 安裝插件。
  • 創(chuàng)建當(dāng)前主題的子主題。

讓我們依次來看看其中的每一個(gè)。

編輯您的主題

如果您的網(wǎng)站運(yùn)行自定義WordPress主題,這意味著它是專門為您的網(wǎng)站開發(fā)的,您可以選擇安全地編輯它,因?yàn)橄麓胃轮黝}時(shí)不會(huì)丟失您的自定義設(shè)置。

相反,如果您或您的開發(fā)人員將來對(duì)主題進(jìn)行更改,您將編輯的是主題的自定義版本,而不是更改之前的原始版本。

這并不意味著編輯您的主題并非沒有風(fēng)險(xiǎn)。如果您沒有編寫主題的經(jīng)驗(yàn),創(chuàng)建子主題可能仍然更安全(我們稍后會(huì)看到如何)。這是我做的事情:我有一個(gè)基本主題,我在我所有的網(wǎng)站上使用,具有標(biāo)準(zhǔn)布局、鉤子和函數(shù),然后我在每個(gè)網(wǎng)站上使用子主題對(duì)其進(jìn)行自定義。

如果您直接編輯主題,請(qǐng)確保保留原始主題的備份,不要在實(shí)時(shí)站點(diǎn)中編輯主題(改用開發(fā)或臨時(shí)站點(diǎn)),并使用版本控制來跟蹤您的更改。

如果您使用的是第三方主題,則永遠(yuǎn)不要直接編輯它。相反,使用插件或創(chuàng)建子主題。

添加插件

自定義WordPress主題的第二個(gè)選項(xiàng)是安裝或編寫插件。

如果您要進(jìn)行的自定義是功能性的而不是與設(shè)計(jì)相關(guān)的,那么插件是一種更合適的方法。所以如果你想添加額外的代碼,最好還是創(chuàng)建一個(gè)插件。

插件不必很大或很復(fù)雜:如果您需要向主題中的functions.php文件添加額外的代碼,請(qǐng)創(chuàng)建一個(gè)簡單的插件來向您的站點(diǎn)添加幾行代碼。一個(gè)很好的例子是注冊(cè)自定義文章類型。

將代碼添加到主題的functions.php可能很誘人,但添加帖子類型是對(duì)網(wǎng)站的功能更改,而不是設(shè)計(jì)更改。如果您以后要切換主題,您不會(huì)希望丟失這些帖子類型以及您使用它們創(chuàng)建的所有帖子。這就是為什么您應(yīng)該安裝或創(chuàng)建插件的原因。

有時(shí)您可以找到一個(gè)現(xiàn)有的插件來滿足您的需求,但有時(shí)您可能需要自己編寫插件代碼。

WordPress插件庫

如果對(duì)是否應(yīng)該創(chuàng)建插件或自定義主題(或子主題)有疑問,請(qǐng)問自己:如果我想在將來更改網(wǎng)站的設(shè)計(jì)并安裝新的WordPress主題,我是否希望保留此更改? 如果答案是肯定的,這意味著更改是功能性的而不是美學(xué)的,它應(yīng)該包含在插件中。

創(chuàng)建子主題

自定義WordPress主題的第三個(gè)選項(xiàng)是創(chuàng)建子主題。

以下是您使用子主題的一些場(chǎng)景:

  • 您希望更改網(wǎng)站的設(shè)計(jì),而不是功能。
  • 您的網(wǎng)站正在運(yùn)行第三方主題或您想在當(dāng)前狀態(tài)下再次使用的主題。
  • 您不想直接編輯現(xiàn)有主題,以防它引起問題(可能您不是經(jīng)驗(yàn)豐富的主題開發(fā)人員)。
  • 您的站點(diǎn)正在運(yùn)行一個(gè)設(shè)計(jì)為父主題的主題,例如框架主題。這些主題具有許多自定義選項(xiàng),例如hooks,專為您添加到您自己的子主題而設(shè)計(jì)。

因此,子主題是一種向您的網(wǎng)站添加自定義內(nèi)容的有效且安全的方式。因此,讓我們更深入地了解它們。

什么是WordPress子主題?

那么,WordPress中的子主題究竟是什么?它是如何工作的?

子主題是與另一個(gè)主題協(xié)同工作的主題,稱為父主題。

它包含一些特定的說明來告訴WordPress這是一個(gè)子主題以及父主題是什么。WordPress 然后在大多數(shù)情況下使用來自父主題的代碼,但會(huì)使用來自子主題的代碼(如有必要)覆蓋它。

在許多方面,子主題的功能就像一個(gè)“正?!钡腤ordPress主題。它以相同的方式安裝、啟用和配置。子主題的獨(dú)特之處在于它依賴于另一個(gè)主題來確定其大部分內(nèi)容。另一個(gè)主題被稱為“父主題”。

WordPress將始終優(yōu)先考慮子主題的設(shè)置。因此,你能想到的子主題為坐在前面的家長。如果子主題中的設(shè)置覆蓋了父主題中的匹配設(shè)置,則子主題優(yōu)先。這使您可以僅更改要更改的主題部分,其他所有內(nèi)容都由現(xiàn)有父級(jí)處理。

例如,大多數(shù)父主題包含定義不同標(biāo)題文本級(jí)別的樣式,例如h1、h2、h3、h4等。假設(shè)父主題將h1字體大小定義為20px,但子主題指定與32px相同的標(biāo)題。在這種情況下,WordPress會(huì)將后一種樣式應(yīng)用于所有h1文本。但是,如果同一個(gè)子主題不包含h2、h3 和 h4 的特殊樣式說明,則仍將應(yīng)用父主題定義的樣式。

如果您可以直接編輯主題,您可能想知道為什么子主題值得麻煩。使用子主題實(shí)際上有很多優(yōu)點(diǎn),因?yàn)樗?/p>

  • 使您能夠更新父主題。您應(yīng)該始終保持網(wǎng)站的各個(gè)方面都是最新的。但是,如果您編輯了父主題,則更新后所有更改都將丟失。
  • 可以輕松找到您所做的更改。發(fā)現(xiàn)您進(jìn)行更改的每個(gè)實(shí)例可能很困難。使用子主題使您的添加內(nèi)容更加清晰。
  • 避免直接編輯父主題的風(fēng)險(xiǎn)。如果您在處理主題時(shí)出錯(cuò),或者您對(duì)所做的修改不滿意,您可以輕松回滾到原始主題。

WordPress子主題中的文件

每個(gè)WordPress子主題必須至少有兩個(gè)文件:樣式表和函數(shù)文件。樣式表將在頂部包含注釋掉的文本,告訴WordPress這是一個(gè)子主題以及父主題是什么。函數(shù)文件將包含一個(gè)函數(shù),該函數(shù)將來自父主題的樣式表排入隊(duì)列。

注意:您可能會(huì)遇到一些指南,告訴您從子主題的樣式表調(diào)用父主題樣式表。這不再是正確的方法,您應(yīng)該在函數(shù)文件中使用排隊(duì)。我很快就會(huì)告訴你如何做到這一點(diǎn)。

你的子主題并不必須 包含的任何其他文件。與父主題不同,如果主題中沒有更多特定文件,它不需要index.php文件作為后備。這是因?yàn)槿绻又黝}中不存在模板文件,WordPress將使用父主題中的文件。

因此,根據(jù)您希望子主題執(zhí)行的操作,您可以向樣式表、函數(shù)文件中添加額外的代碼,或者在子主題中創(chuàng)建額外的文件以覆蓋父主題。這些可能包括以下一項(xiàng)或多項(xiàng):

  • 模板文件覆蓋父主題中的相同文件,例如page.php當(dāng)您要自定義靜態(tài)頁面的顯示時(shí)。
  • 當(dāng)您想要自定義站點(diǎn)設(shè)計(jì)的這些部分時(shí),模板部分例如header.php或footer.php。
  • 您從子主題中的模板文件調(diào)用的額外模板部分。因此,如果您想在顯示靜態(tài)頁面時(shí)自定義頁眉,您可以在子主題中創(chuàng)建一個(gè)名為header-page.php的文件和一個(gè)名為page.php的模板文件,該文件將覆蓋父主題中的page.php . 這個(gè)模板文件將與父主題中的模板文件相同,除了頭文件的調(diào)用,它會(huì)調(diào)用header-page.php 而不是header.php。
  • 用于功能的額外包含文件。如果您想添加大量函數(shù)代碼并對(duì)其進(jìn)行組織,您可以為每組函數(shù)創(chuàng)建包含文件,然后在您的子主題的functions.php文件中調(diào)用它們。因此,例如,如果您想添加額外的定制器選項(xiàng),您可以在您的子主題中添加一個(gè)名為customr.php的包含文件,然后從您的子主題中的函數(shù)文件中調(diào)用該文件。

但是,如果您確實(shí)添加了額外的文件和功能,WordPress怎么知道該使用哪個(gè)呢?來自父主題的那些還是來自子主題的那些?這就是我們接下來要講的。

WordPress如何選擇模板文件

WordPress在您的站點(diǎn)上顯示內(nèi)容時(shí)從您的主題中選擇模板文件的方式是參考模板層次結(jié)構(gòu)。

WordPress模板層次結(jié)構(gòu)

WordPress使用此層次結(jié)構(gòu)來處理主題中的模板文件,并在顯示給定類型的內(nèi)容時(shí)找到要使用的正確模板文件。它將從頂部開始(在上圖中的左側(cè))并依次查找給定內(nèi)容類型的每個(gè)文件。當(dāng)它找到將顯示該內(nèi)容的文件時(shí),它將使用它。

假設(shè)您的主題有一個(gè)archive.php文件和一個(gè)category.php文件,但沒有tag.php文件。顯示類別檔案時(shí),WordPress將使用category.php,因?yàn)樗囟ㄓ趦?nèi)容類型。當(dāng)顯示標(biāo)簽檔案時(shí),它將使用archive.php代替。

如果WordPress沒有為給定的內(nèi)容類型找到模板文件,它會(huì)默認(rèn)為包羅萬象的index.php文件,這就是為什么每個(gè)獨(dú)立主題(即不是子主題)都必須有一個(gè)index.php文件的原因.

這同樣適用于單個(gè)文章和頁面。假設(shè)您的主題有一個(gè)single.php文件,它是任何文章類型(包括頁面和自定義帖子類型)的單個(gè)帖子的統(tǒng)稱。它還有一個(gè)page.php文件。當(dāng)顯示單個(gè)頁面時(shí),它將使用page.php。顯示文章時(shí),它將使用singular.php。如果您注冊(cè)自定義文章類型并且不為該帖子類型添加模板文件,它將再次使用singular.php。

當(dāng)您使用子主題時(shí),WordPress仍然使用模板層次結(jié)構(gòu)來決定在您的站點(diǎn)上輸出內(nèi)容時(shí)使用哪個(gè)文件。它查看父主題和子主題中的文件并使用它遇到的第一個(gè)文件。

所以想象你的子主題有singular.php和post.php,你的父主題有page.php和index.php。輸出單個(gè)文章時(shí),WordPress將使用子主題中的post.php。輸出頁面時(shí),它將使用父主題中的page.php。當(dāng)輸出自定義帖子類型的單個(gè)帖子時(shí),它將使用來自子主題的single.php。

但是,如果您的子主題和父主題都有相同文件的實(shí)例怎么辦?

假設(shè)您將page.php文件添加到上一個(gè)示例中的子主題。因?yàn)樵撝黝}位于子主題中,所以它會(huì)覆蓋父主題中的相同文件。因此,當(dāng)顯示單個(gè)頁面時(shí),WordPress將使用來自子主題的新page.php文件。

這就是為什么創(chuàng)建子主題可以讓您自定義父主題。如果您將父主題中的模板文件副本添加到子主題,然后對(duì)其進(jìn)行編輯以包含您要進(jìn)行的自定義,WordPress將使用這個(gè)新模板文件,而不是來自父主題的模板文件。這意味著您的自定義將在顯示內(nèi)容時(shí)使用,而無需您編輯父主題。好的!

WordPress如何從父主題和子主題運(yùn)行函數(shù)

如果您不想對(duì)主題中的模板文件進(jìn)行自定義,而是對(duì)功能進(jìn)行自定義,該怎么辦?

你也可以這樣做。首先,您需要讓自己滿意,這樣做的正確方法是通過子主題而不是插件。一個(gè)示例可能是您想要編輯父主題中已有的函數(shù),例如,在頁腳中輸出版權(quán)頁的函數(shù)。

然后將新函數(shù)添加到子主題中的函數(shù)文件,或添加到從函數(shù)文件調(diào)用的包含文件。

為確保您的新函數(shù)覆蓋父主題的功能,您需要了解如何覆蓋函數(shù)。有三種方法可以做到這一點(diǎn):

  • 通過在父主題中編寫一個(gè)與可插入函數(shù)同名的新函數(shù)。
  • 通過將父主題中的函數(shù)從它所附加的鉤子中解開,然后編寫一個(gè)新函數(shù)來替換它。
  • 通過編寫一個(gè)比原始函數(shù)具有更高優(yōu)先級(jí)的新函數(shù)并通過相同的鉤子調(diào)用它,這意味著它在原始函數(shù)之后被調(diào)用,因此可以覆蓋或增加它。

我們將在本文稍后介紹您如何執(zhí)行所有這些操作。但首先,讓我們看一下您何時(shí)會(huì)使用和不會(huì)使用子主題的場(chǎng)景。

何時(shí)在WordPress中使用子主題(優(yōu)點(diǎn))

您現(xiàn)在知道什么是子主題以及如何使用它們來覆蓋父主題中的模板文件或函數(shù)。

簡要回顧一下,如果您在網(wǎng)站上運(yùn)行主題并且想要執(zhí)行以下一項(xiàng)或多項(xiàng)操作,則應(yīng)使用子主題:

  • 編輯一個(gè)或多個(gè)模板文件。
  • 添加與顯示而非功能相關(guān)的額外功能。
  • 覆蓋父主題中的一個(gè)或多個(gè)函數(shù)。
  • 添加額外的模板文件。

一些優(yōu)點(diǎn)包括:

  • 易于擴(kuò)展和定制:很明顯,子主題擴(kuò)展了其父主題的功能。您已經(jīng)有一個(gè)父主題形式的現(xiàn)成模板,您需要做的就是為您的子主題創(chuàng)建一個(gè)單獨(dú)的style.css文件,并根據(jù)您的需要添加自定義調(diào)整。
  • 輕松更新:隨著 WordPress 的發(fā)展,主題和插件需要經(jīng)常更新。如果您對(duì)主要主題進(jìn)行自定義調(diào)整和更改,如果您更新主題,最終可能會(huì)丟失所有更改。因此,建議對(duì)子主題進(jìn)行此類更改,這樣即使您需要更新父主題,也不必?fù)?dān)心丟失更改。

當(dāng)您不使用子主題時(shí)呢?

何時(shí)不使用WordPress子主題(缺點(diǎn))

有時(shí)您不會(huì)使用子主題,而應(yīng)該使用不同的方法來自定義您的網(wǎng)站。這些是:

  • 如果您的主題是您自己開發(fā)的(或其他人為您編寫的)并且不需要在其他任何地方使用它。只需編輯主題,確保使用版本控制。
  • 如果您要進(jìn)行的自定義具有功能性,例如添加自定義帖子類型,并且您希望在將來更改主題時(shí)保留它們。改用插件。

一些缺點(diǎn)包括:

  • 選擇理想的父主題:并非所有主題都可以作為好父主題!例如,某些WordPress主題可能不會(huì)定期更新,因此往往缺乏最新的功能。同樣,并非所有WordPress主題都是在考慮子主題的情況下創(chuàng)建的,因此可能不適合父主題。您需要選擇完美的父主題,以便正確擴(kuò)展它并使其成為您子主題的基礎(chǔ)。
  • 定制工作:子主題基本上尋求擴(kuò)展和定制現(xiàn)有模板設(shè)計(jì)。因此,如果您已經(jīng)圍繞父主題創(chuàng)建了一個(gè)網(wǎng)站,則在移動(dòng)到子主題時(shí),您可能需要重新考慮自定義元素,例如菜單、主題選項(xiàng)、側(cè)邊欄、標(biāo)題等。

現(xiàn)在您知道何時(shí)(以及何時(shí)不)使用子主題,是時(shí)候開始工作并學(xué)習(xí)如何在WordPress中創(chuàng)建子主題了。

現(xiàn)在您知道為什么應(yīng)該使用子主題,現(xiàn)在是創(chuàng)建一個(gè)的時(shí)候了。這個(gè)過程有點(diǎn)復(fù)雜,但我們將引導(dǎo)您完成每一步。

如何創(chuàng)建WordPress子主題

在創(chuàng)建子主題之前,您需要做一些準(zhǔn)備工作。首先,在執(zhí)行任何其他操作之前創(chuàng)建站點(diǎn)備份非常重要。這樣,您就可以處理您的主題,而不必?fù)?dān)心破壞您的網(wǎng)站或丟失其任何內(nèi)容。事實(shí)上,最好使用臨時(shí)站點(diǎn)來編輯和測(cè)試您的主題,而不是您的實(shí)時(shí)站點(diǎn)。

我們還建議您在開始之前熟悉CSS和PHP。雖然您不需要任何使用這些語言創(chuàng)建子主題的經(jīng)驗(yàn),但它肯定有助于編輯主題的過程。花時(shí)間了解這些關(guān)鍵語言的基礎(chǔ)知識(shí)將使您有一個(gè)良好的開端。

在WordPress中設(shè)置一個(gè)基本的子主題涉及創(chuàng)建兩個(gè)文件:樣式表函數(shù)文件

Step 1:為您的子主題創(chuàng)建一個(gè)文件夾

您需要的第一件事是為您的孩子主題生活的地方。但是,在此之前,您需要一種直接處理站點(diǎn)文件的方法。這通常意味著使用像FileZilla這樣的SFTP解決方案來訪問您的站點(diǎn)。

一旦你安裝和設(shè)置FileZilla中,您可以使用登錄你的虛擬主機(jī)提供的憑據(jù)。完成后,您將看到整個(gè)站點(diǎn)組織成一系列文件夾和文件。從這里,您需要導(dǎo)航到/wp-content/themes/,這是所有主題所在的位置。

右鍵單擊此文件夾內(nèi)的任意位置,然后選擇創(chuàng)建目錄。此文件夾將保存您的子主題,因此我們建議您以其父主題命名。例如,一個(gè)二〇一七的子主題可能被稱為twentyseventeen-child。

保存文件夾后,就可以開始向子主題添加內(nèi)容了。

Step 2:創(chuàng)建樣式表

層疊樣式表 (CSS)是一種定義HTML內(nèi)容外觀的語言。主題的CSS文件控制您網(wǎng)站上的文本、圖像、超鏈接和大多數(shù)其他內(nèi)容的外觀。當(dāng)我們談?wù)摳闹黝}的外觀時(shí),我們通常談?wù)摰氖蔷庉嬈銫SS。

這聽起來可能很復(fù)雜,而且CSS確實(shí)為您提供了很多自定義選項(xiàng)。但是,現(xiàn)在您無需擔(dān)心具體細(xì)節(jié)。您需要做的就是創(chuàng)建CSS文件本身。您將在剛剛創(chuàng)建的子主題文件夾中執(zhí)行此操作。只需打開文件夾,右鍵單擊其中的任意位置,然后選擇創(chuàng)建新文件。

當(dāng)您被要求命名文件時(shí),將其命名為style.css,注意使用確切的大小寫和拼寫(因?yàn)閃ordPress否則將無法識(shí)別該文件)。

該文件自然是空的,因此您需要為其提供一些內(nèi)容。要開始編輯文件,請(qǐng)右鍵單擊它并選擇查看/編輯。這將在您的默認(rèn)文本編輯程序中打開文件,例如TextEdit或記事本。

在創(chuàng)建文件之前,您需要?jiǎng)?chuàng)建一個(gè)文件夾來保存您的主題。這在WordPress安裝的wp-content/themes文件中。

在新主題的文件夾中,創(chuàng)建一個(gè)名為style.css的文件。添加以下內(nèi)容:

/*
Theme Name:  My Child Theme. Child for Twenty Nineteen.
Theme URI:  https://rachelmccollin.com
Description:  Theme to support tutsplus tutorial. Child theme for the Twenty Nineteen theme.
Author:  Rachel McCollin
Textdomain:  mccollin
Author URI:  https://rachelmccollin.com/
Template:  twentynineteen
Version:  1.0
License:  GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html                 
*/

這段文字被注釋掉了。它不是在您的網(wǎng)站上運(yùn)行任何東西或提供任何功能的代碼。相反,它會(huì)告訴WordPress主題。每個(gè)主題中都需要這樣的文本,否則WordPress無法將其識(shí)別為主題。

讓我們通過每一行來確定它們的作用:

  • Theme Name:主題的唯一名稱。
  • Theme URI:用戶可以在其中找到主題的代碼或文檔。
  • Description:幫助用戶理解主題的描述性文字。
  • Author:你的名字
  • Textdomain:用于國際化。在任何國際化函數(shù)中使用文本域作為第二個(gè)參數(shù)。
  • Author URI:作者的網(wǎng)站。
  • Template:存儲(chǔ)父主題的文件夾。使用文件夾名稱而不是主題名稱。沒有這一行,您的主題將無法作為子主題使用。
  • Version:版本號(hào)
  • License:許可證,必須是GNU。[關(guān)聯(lián)]
  • License URI:許可證信息的鏈接。

子主題最重要的一行是Template: 行。沒有這個(gè),主題將不能作為子主題工作。只有子主題將包含此行。

將此添加到您主題的樣式表中,對(duì)其進(jìn)行編輯以添加您自己的詳細(xì)信息而不是我的。您需要編輯Template: 行以添加存儲(chǔ)現(xiàn)有主題的文件夾,因?yàn)檫@將是您的父主題。

現(xiàn)在保存文件。如果您現(xiàn)在查看站點(diǎn)中的主題詳細(xì)信息屏幕,您會(huì)看到顯示的所有內(nèi)容:

WordPress中沒有截圖的主題頁面

這看起來不太好,因?yàn)闆]有截屏。這是一張圖像,可以讓您了解主題的外觀。除非您的主題看起來與父主題非常不同,否則只需將screenshot.png文件從您的父主題復(fù)制到您的子主題。

帶有屏幕截圖的WordPress中的主題頁面

Step 3:引用父主題

到目前為止,您的主題已經(jīng)有了一個(gè)主頁和一些基本信息。現(xiàn)在,是時(shí)候給它一些功能了。您可以通過創(chuàng)建一個(gè)函數(shù)文件來做到這一點(diǎn)。除其他外,此文件決定了主題的獨(dú)特功能。這是一個(gè)功能強(qiáng)大的工具,用途廣泛,但現(xiàn)在,您只需要?jiǎng)?chuàng)建它。

下一步是將函數(shù)文件添加到您的子主題。您需要它,以便您可以將來自父主題的樣式表排入隊(duì)列。沒有它,您的網(wǎng)站將根本沒有樣式,看起來像這樣:

我們的主頁沒有CSS

不好,我相信你會(huì)同意的!因此,讓我們添加樣式以使其看起來應(yīng)該如此。

在您的子主題文件夾中,添加一個(gè)名為functions.php的文件。打開它并添加以下代碼:


它使用wp_enqueue_style()函數(shù)將來自父主題的樣式表排入隊(duì)列,get_template_directory_uri()函數(shù)定位該文件的存儲(chǔ)位置。該函數(shù)位于我創(chuàng)建的一個(gè)名為wbolt_parent_styles()的函數(shù)中,與wp_enqueue_scripts鉤子掛鉤。

您可能想知道為什么它使用名為wp_enqueue_scripts而不是的函數(shù)wp_enqueue_styles。這是因?yàn)?code>wp_enqueue_scripts用于腳本和樣式,并且沒有像wp_enqueue_styles.

隨意編輯我的代碼,將您自己的前綴添加到您的函數(shù)名稱中。我使用“childtheme”作為前綴,以確保我的函數(shù)不會(huì)與來自父主題或任何插件的任何其他函數(shù)發(fā)生沖突。

現(xiàn)在保存您的文件。

Step 4:啟用子主題

您的子主題現(xiàn)在可以使用了,所以您需要做的就是啟用它。最簡單的方法是通過WordPress管理界面。只需登錄,然后訪問外觀>主題。您應(yīng)該已經(jīng)在此處看到您的子主題:

此時(shí),您只需要單擊“啟用”即可啟用您的主題。當(dāng)然,此時(shí)您可能不會(huì)注意到您的站點(diǎn)有任何差異。這是因?yàn)槟鷮?shí)際上還沒有添加任何自定義。子主題仍然是一張白紙,等著你把它變成特別的東西。

正如我們之前提到的,您現(xiàn)在應(yīng)該花一些時(shí)間來了解有關(guān)CSS和PHP的更多信息。這將使您能夠使用內(nèi)置主題編輯器通過子主題向您的站點(diǎn)添加新樣式和功能。如果你想擴(kuò)展您的主題的功能,它也是一個(gè)聰明的想法,詳細(xì)了解了functions.php的文件。只需稍加努力,您就可以使用全新的子主題對(duì) WordPress 網(wǎng)站進(jìn)行任何您想要的更改!

如何激活WordPress子主題

一旦您的子主題準(zhǔn)備就緒,您就需要激活它。如果您擔(dān)心激活子主題會(huì)關(guān)閉父主題,請(qǐng)不要擔(dān)心:WordPress會(huì)知道使用父主題中的文件,除非您向子主題添加新文件來覆蓋它們。到目前為止,您還沒有向子主題添加任何額外的文件或功能,因此您的站點(diǎn)的工作方式與激活父主題時(shí)完全相同。

請(qǐng)記?。菏紫仍谀拈_發(fā)或臨時(shí)站點(diǎn)上執(zhí)行此操作。在您測(cè)試之前,不要在您的實(shí)時(shí)站點(diǎn)上激活您的子主題。

在WordPress管理中,轉(zhuǎn)到外觀 > 主題。您會(huì)發(fā)現(xiàn)您的子主題列在您網(wǎng)站上安裝的主題中。

將鼠標(biāo)懸停在主題上,然后單擊“激活” 按鈕。這將激活您的子主題?,F(xiàn)在,當(dāng)您訪問您的實(shí)時(shí)站點(diǎn)時(shí),它看起來和以前一樣:

網(wǎng)站首頁

它看起來相同,因?yàn)槟形刺砑尤魏巫远x。但是你現(xiàn)在有一個(gè)工作子主題。做得好!

如何在WordPress中自定義子主題

現(xiàn)在您的WordPress網(wǎng)站有了一個(gè)可用的子主題,是時(shí)候添加您的自定義設(shè)置了。在這里,我將向您展示如何添加模板文件以覆蓋父主題上的模板文件、如何為子主題添加樣式以及如何添加新功能。

讓我們從模板文件開始。

如何將模板文件添加到您的WordPress子主題

我們已經(jīng)了解了WordPress在您的網(wǎng)站上顯示內(nèi)容時(shí)如何選擇要使用的模板文件。有兩件事要記住:

  • WordPress將使用層次結(jié)構(gòu)中最先出現(xiàn)的文件,無論是來自子主題還是父主題。
  • 如果父主題和子主題中都存在同名的模板文件(或模板部分,例如header.php),WordPress將使用子主題中的一個(gè)。

要添加自定義,我發(fā)現(xiàn)首先從父主題制作相關(guān)文件的副本,將其添加到子主題,然后編輯它更容易。

這適用于您的子主題中的文件是否與父主題中的命名文件相同,或者它是用于顯示不同內(nèi)容類型的新文件,還是層次結(jié)構(gòu)中更高的文件。

因此,如果我將新版本的page.php添加到我的子主題中,這將覆蓋我父主題中的page.php,我會(huì)將page.php從我的父主題復(fù)制到我的子主題,然后對(duì)其進(jìn)行編輯。確保復(fù)制文件:不要移動(dòng)它,因?yàn)槟幌雽?duì)父主題進(jìn)行任何更改。

例如,如果我想要在我的子主題中使用自定義頁面模板,我會(huì)將page.php復(fù)制到我的子主題,重命名它,然后對(duì)其進(jìn)行編輯。

這樣,您可以確保不需要自定義的文件的所有方面仍然可以正常工作。這同樣適用于模板部件。

如何為您的WordPress子主題添加樣式

您還可以向子主題的style.css文件添加樣式,這將增強(qiáng)或覆蓋父主題樣式表中的樣式。

WordPress將首先從父主題調(diào)用樣式表,然后從子主題調(diào)用樣式表。這意味著如果您將樣式添加到與父主題中的樣式相同的元素的子主題,只要您使用相同的選擇器,它就會(huì)覆蓋父主題的樣式。

因此,假設(shè)您想更改站點(diǎn)標(biāo)題的顏色。在父主題中,這可能是這樣的:

h1.site-title {
color: #000;
}

要在您的子主題中覆蓋它,您可以添加以下內(nèi)容:

h1.site-title {
color: #303030;
}

由于瀏覽器會(huì)在父主題中的樣式之后遇到這個(gè),它將覆蓋它并被使用。

如何為WordPress子主題添加函數(shù)

因此,您在WordPress中創(chuàng)建了子主題并不是因?yàn)槟胍庉嬋魏文0逦募?,而是因?yàn)槟胍砑宇~外的功能或覆蓋父主題中的一個(gè)或多個(gè)功能。

在子主題中編寫函數(shù)比添加模板文件要復(fù)雜一些,但這是可能的。

如果您想添加一個(gè)不與父主題中的任何功能交互的新功能,您可以繼續(xù)這樣做。只需將該函數(shù)添加到子主題中的functions.php文件中,將其掛接到相關(guān)的操作或過濾器掛鉤上,就可以了。

但是,如果您計(jì)劃覆蓋或編輯父主題中的函數(shù),則需要了解可用于執(zhí)行此操作的方法。您可以通過三種方式覆蓋子主題中的父主題功能:

  • 如果父主題中的主題是可插入的,您只需在子主題中編寫另一個(gè)具有相同名稱的函數(shù),WordPress將運(yùn)行該函數(shù)而不是父主題中的函數(shù)。
  • 如果你想完全停止父主題中的函數(shù)運(yùn)行,你可以在你的子主題中編寫一個(gè)函數(shù),將它從它所附加的鉤子中解開。
  • 如果您想擴(kuò)充一個(gè)函數(shù),您可以在您的子主題中添加另一個(gè)函數(shù)(具有不同的名稱),并確保它在父主題中的函數(shù)之后運(yùn)行。

讓我們仔細(xì)看看你是如何做到的。

覆蓋可插入函數(shù)

可插拔函數(shù)由環(huán)繞在它周圍的條件檢查標(biāo)識(shí)。這將檢查是否有另一個(gè)同名的函數(shù)已經(jīng)被觸發(fā)。如果是這樣,它不會(huì)運(yùn)行該功能。

WordPress將在來自父主題的函數(shù)之前觸發(fā)來自您的子主題的函數(shù)。如果它在父主題中遇到一個(gè)可插拔函數(shù),并且您已向子主題添加了一個(gè)同名的函數(shù),則該可插拔函數(shù)將不會(huì)運(yùn)行。

一個(gè)示例是在WooCommerce站點(diǎn)的Storefront主題中輸出版權(quán)頁的函數(shù)。這是沒有內(nèi)容的函數(shù):

if ( ! function_exists( 'storefront_credit' ) ) {
function storefront_credit() {
// contents for function here
}
}

如果您想覆蓋它,您可以編寫另一個(gè)具有相同名稱 ( storefront_credit()) 的函數(shù)并將其掛接到與父主題相同的鉤子上。

從父主題中解開函數(shù)

如果父主題的函數(shù)不可插入,您仍然可以阻止它運(yùn)行。假設(shè)您的父主題有一個(gè)名為parent_function()的函數(shù),函數(shù)init20的優(yōu)先級(jí)掛接到鉤子上。您想阻止它運(yùn)行,以便您可以用自己的函數(shù)替換它。

下面是父主題函數(shù)的樣子:

function parent_function() {
//contents of function here
}
add_action( ‘init’, ‘parent_function’, 20 );

要解開它,您可以在您的子主題中對(duì)此進(jìn)行編碼:

function remove_parent_function() {
remove_action( ‘init’, ‘parent_function’, 20 );
}
add_action( ‘wp_head’, ‘remove_parent_function’ );

請(qǐng)注意,您將第二個(gè)函數(shù)掛接到在每個(gè)頁面頂部運(yùn)行的wp_head掛鉤,并且您必須包含與原始函數(shù)中相同的優(yōu)先級(jí)參數(shù)值。如果原始add_action()函數(shù)沒有優(yōu)先級(jí),您可以從子主題的remove_action()函數(shù)中省略它。

注意:如果原始函數(shù)被掛鉤到過濾器掛鉤而不是動(dòng)作掛鉤,則您將以remove_filter()相同的方式使用。

用另一個(gè)函數(shù)擴(kuò)充一個(gè)函數(shù)

有時(shí)您可能想要添加到它而不是覆蓋或刪除函數(shù)。在這種情況下,您將編寫一個(gè)具有不同名稱的新函數(shù),并將其附加到同一個(gè)鉤子上。

假設(shè)您的父主題中的頁腳有一個(gè)名為parent_footer. 您附加到該鉤子的任何函數(shù)都將在該鉤子所在的位置運(yùn)行。

在父主題中,已經(jīng)有一個(gè)parent_footer_content()用于填充頁腳的函數(shù)。但是如果你想給它添加一些額外的代碼怎么辦?

以下是該parent_footer_content()函數(shù)在父主題中的樣子:

function parent_footer_content() {
// content of function here
}
add_action( ‘parent_footer’, ‘parent_footer_content’ );

現(xiàn)在,如果您想在那之后添加其他內(nèi)容,您將在您的子主題中創(chuàng)建一個(gè)函數(shù),掛鉤到同一個(gè)動(dòng)作鉤子,優(yōu)先級(jí)意味著它在第一個(gè)函數(shù)之后運(yùn)行。由于未為父主題的功能設(shè)置優(yōu)先級(jí),因此默認(rèn)為10。因此您需要使用更高的數(shù)字,以便在此之后觸發(fā)。

function child_footer_extra_content() {
// contents of function here
}
add_action( ‘parent_footer’, ‘child_footer_extra_content’, 20 );

這將在來自父主題函數(shù)的代碼之后添加來自子主題函數(shù)的代碼。

如何對(duì)子主題和父主題進(jìn)行故障排除

所以現(xiàn)在您知道如何在WordPress中創(chuàng)建子主題以及如何使用它來覆蓋模板文件、添加額外樣式以及為您的站點(diǎn)添加功能。

但是,如果您的子主題沒有按預(yù)期工作怎么辦?如果內(nèi)容沒有按照您預(yù)期的方式顯示,或者函數(shù)沒有觸發(fā)怎么辦?

使用此清單對(duì)您的子主題進(jìn)行故障排除:

希望這些步驟中的一個(gè)或多個(gè)步驟可以幫助您識(shí)別問題并在您的子主題中修復(fù)它。記住:不要直接編輯父主題。

使用WordPress子主題時(shí)的有用提示

子主題是一個(gè)非常重要的話題,也是WordPress一個(gè)非常有價(jià)值的功能。我在我建立的每個(gè)網(wǎng)站上都使用它們。

為了幫助您找到最有效地利用子主題所需的方法,以下是我的提示,可幫助您解決這些問題:

  • 如果您需要編輯第三方主題,請(qǐng)始終使用子主題。這樣,當(dāng)您更新主題時(shí),您的更改不會(huì)丟失。
  • 每個(gè)子主題都需要一個(gè)樣式表和一個(gè)函數(shù)文件。
  • WordPress將使用模板層次結(jié)構(gòu)來確定在輸出內(nèi)容時(shí)使用哪個(gè)模板文件。如果它找到兩個(gè)同名的文件,它將使用子主題中的一個(gè)。
  • 您可以通過在子主題中編寫具有相同名稱的函數(shù)來覆蓋父主題中的可插入函數(shù)。
  • 您可以使用子主題中的函數(shù)remove_action()remove_filter()從父主題中解開函數(shù),然后編寫新函數(shù)。
  • 您可以通過在子主題中編寫一個(gè)函數(shù)并將其連接到相同的動(dòng)作或過濾器鉤子來擴(kuò)充父主題中的函數(shù)。
  • 上傳后不要忘記激活您的子主題。并確保沒有人從您的WordPress安裝中刪除父主題:沒有它,子主題將無法工作。

小結(jié)

創(chuàng)建子主題是在不承擔(dān)任何相關(guān)風(fēng)險(xiǎn)的情況下修改主題的最佳方式。使用此過程,您幾乎可以更改網(wǎng)站外觀和布局方面的任何內(nèi)容。更重要的是,您將能夠立即創(chuàng)建您的子主題。

子主題是 WordPress 的一項(xiàng)有用功能,可讓您自定義主題而無需直接編輯其代碼。您可以使用一個(gè)來向主題添加附加功能、自定義樣式或創(chuàng)建/編輯模板文件。

如果您遵循上述建議,您將能夠按照最佳實(shí)踐在 WordPress 中創(chuàng)建子主題,并利用它們完成各種任務(wù)。當(dāng)您更新父主題時(shí),所有這些都不會(huì)丟失您的更改和自定義。


分享文章:如何開發(fā)一款WordPress子主題
文章URL:http://www.5511xx.com/article/dhjoeio.html