當(dāng)前位置:首頁(yè)>WordPress建站>WordPress開發(fā)>如何創(chuàng)建和自定義WordPress子主題

如何創(chuàng)建和自定義WordPress子主題

什么是子主題,為什么如此重要?在本文中,我們將為您提供這些問題的答案,并逐步向您展示如何使用插件或代碼創(chuàng)建和自定義自己的子主題

如果您想更改WordPress網(wǎng)站的主題,您可能已經(jīng)看到有人告訴您使用WordPress子主題。

但是什么是子主題,為什么子主題如此重要?

在這篇文章中,我們將通過介紹子主題以及它們?nèi)绾问鼓芤妫瑸槟獯疬@些問題。

然后,我們將逐步向您展示如何使用插件或代碼創(chuàng)建和自定義自己的子主題。

讓我們開始吧!

什么是WordPress子主題?

WordPress子主題不是獨(dú)立主題。它是現(xiàn)有父主題的“兒子”,因此而得名。

您將在父主題旁邊安裝它,它使您可以安全地更改父主題,而無需編輯父主題本身。

子主題將從父主題中提取大部分/所有設(shè)計(jì)設(shè)置。但是,在對(duì)子主題進(jìn)行更改的情況下,該更改將覆蓋父主題中的設(shè)置。

子主題的優(yōu)勢(shì)

此時(shí),您可能想知道為什么不能僅直接對(duì)父主題進(jìn)行更改?

這樣做不是一個(gè)好主意的主要原因是主題更新

如果要保持WordPress網(wǎng)站的安全和運(yùn)行良好,則需要在發(fā)布時(shí)及時(shí)應(yīng)用更新,包括主題更新。

如果您通過直接編輯主題(不包含子主題)來自定義網(wǎng)站,則意味著每次更新主題時(shí),您將覆蓋所有更改。

這意味著您要么:

  • 更新主題并失去之前的修改。不是很有趣的經(jīng)歷,對(duì)不對(duì)?
  • 不要更新主題,以免丟失之前的修改……這不利于網(wǎng)站的安全性和功能。

使用WordPress子主題,您可以對(duì)子主題進(jìn)行所有更改。然后,您將能夠更新父主題,而不會(huì)丟失任何工作。

除了幫助您安全更新之外,使用子主題通常也可以方便地進(jìn)行自定義。因?yàn)樗梢詫⑺懈募性谝粋€(gè)位置,所以很容易跟蹤所有編輯并根據(jù)需要進(jìn)行調(diào)整。

這也使得反轉(zhuǎn)很容易。例如,如果要停止使用編輯并返回到父主題,則只需禁用子主題即可。

默認(rèn)情況下,某些現(xiàn)成的WordPress主題甚至使用此父/子主題的方法。例如,如果要使用Genesis Framework,則需要父主題(基本框架)和子主題來控制設(shè)計(jì)。

何時(shí)使用子主題

除了下面將列出的一些例外情況之外,如果您打算對(duì)現(xiàn)有的WordPress主題進(jìn)行自己的編輯,則應(yīng)始終使用子主題。

通常,每當(dāng)您自定義WordPress主題時(shí),最好使用子主題。

但是,該規(guī)則有一些例外,即可能有比使用子主題更好的選擇。

首先,如果您只想進(jìn)行一些小的CSS修改,那么只為進(jìn)行一些調(diào)整而創(chuàng)建子主題可能是過大的選擇。

相反,您可以使用WordPress Customizer定制器中內(nèi)置的其他CSS功能添加自定義CSS 。或者,您可以使用免費(fèi)插件,例如Tom Usborne的Simple CSS plugin

其次,如果要進(jìn)行獨(dú)立于主題的更改,則子主題可能不是最佳選擇。

例如,如果要注冊(cè)自定義分類法或自定義文章類型,則可能不想使用子主題的functions.php文件(因?yàn)榧词骨袚Q主題也要保留這些功能)。相反,您應(yīng)該只使用插件(如代碼片段)或您自己的自定義插件將插件完全添加到主題之外。

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

既然您知道子主題為何如此重要,那么讓我們開始了解如何為WordPress網(wǎng)站創(chuàng)建子主題。

如果您的主題還沒有子主題,則可以通過兩種方式為任何WordPress主題創(chuàng)建子主題:

  1. 使用免費(fèi)的WordPress子主題生成器插件。
  2. 手動(dòng)創(chuàng)建自己的子主題。

我們將向您展示如何執(zhí)行這兩種方法。

如何使用WordPress子主題插件

子主題生成器插件可讓您創(chuàng)建子主題,而無需離開WordPress儀表板。

這里最受歡迎的選項(xiàng)是免費(fèi)的Child Theme Configurator插件,該插件在超過300,000個(gè)站點(diǎn)上安裝。

Child Theme Configurator不僅可以幫助您創(chuàng)建基本的子主題文件,而且還可以掃描您正在使用的任何主題,并根據(jù)需要排隊(duì)主題和字體樣式表。

如果要在已經(jīng)添加了內(nèi)容的網(wǎng)站上創(chuàng)建子主題,它還包括其他有用的功能。例如,它可以將現(xiàn)有的小工具和“定制程序”選項(xiàng)復(fù)制到子主題。

但是,如果您打算在實(shí)時(shí)網(wǎng)站上使用該插件,我們建議您先進(jìn)行完整備份,然后再繼續(xù)。或者,最好在暫存站點(diǎn)上進(jìn)行所有設(shè)置。

一旦準(zhǔn)備好備份,就可以從WordPress.org安裝并激活免費(fèi)的Child Theme Configurator插件開始。然后,轉(zhuǎn)到工具→子主題以創(chuàng)建您的子主題。

在“選擇父主題”下拉列表中,選擇要為其創(chuàng)建子主題的主題。然后,單擊分析

然后,插件將分析您的父主題是否存在任何依賴關(guān)系。

完成此操作后,您將看到一些其他選項(xiàng)來配置如何創(chuàng)建子主題。如果不確定特定設(shè)置的含義,可以將其保留為默認(rèn)設(shè)置:

完成選擇之后,請(qǐng)點(diǎn)擊底部的按鈕以創(chuàng)建新的子主題

就是這樣!然后,該插件將為您創(chuàng)建子主題。但是,它不會(huì)激活子主題。

要激活它:

  • 轉(zhuǎn)到外觀→主題。
  • 預(yù)覽帶有子主題的網(wǎng)站的外觀(以確保其正常工作-如果您的網(wǎng)站看起來很奇怪,則可能是因?yàn)镃SS問題)。
  • 像激活其他任何WordPress主題一樣激活您的子主題。但是,請(qǐng)確保保留您的父主題。

激活了子主題之后,“子主題配置器”插件還將包括一些其他有用的工具來幫助您管理子主題。例如,如果轉(zhuǎn)到插件設(shè)置的“文件”選項(xiàng)卡,則可以查看父主題和子主題中的所有關(guān)聯(lián)文件。

然后,您可以將文件從父主題復(fù)制到子主題。

例如,如果要對(duì)single.php進(jìn)行一些編輯,則可以將該文件復(fù)制到子主題中,以便可以安全地對(duì)其進(jìn)行編輯:

您還將找到許多其他工具來幫助您使用CSS。

我們稍后將介紹為什么這些工具很有用。

如何手動(dòng)創(chuàng)建子主題

在本節(jié)中,我們假設(shè)您對(duì)PHP和CSS有所了解。如果您不滿意此處的說明,我們建議您堅(jiān)持使用上一節(jié)中提供的免費(fèi)插件。

要手動(dòng)創(chuàng)建子主題,您需要?jiǎng)?chuàng)建兩個(gè)文件(這些是子主題的最低要求):

  • style.css –首先,您需要添加的只是一些css代碼。
  • functions.php –這使您可以從父主題中引入樣式表。沒有這個(gè),您的子主題將無法應(yīng)用父主題的CSS,這將使您的網(wǎng)站看起來非常難看!

style.css

首先,創(chuàng)建一個(gè)名為style.css的文件并添加以下代碼:

/*
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 1.0.1
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
*/

確保用您的實(shí)際信息替換冒號(hào)后面的所有內(nèi)容:

  • Theme Name – 您的子主題的名稱。
  • Theme URI – 您的主題及其文檔的網(wǎng)站。
  • Description – 主題的簡(jiǎn)短說明。
  • Author – 主題作者的名字。
  • Author URI –主題作者的網(wǎng)站。
  • Template – 父主題文件夾的名稱(與wp-content/themes文件夾中的名稱相同)。這是最重要的一行,因?yàn)槿绻麤]有此主題,子主題將無法正常工作。
  • Version – 您的子主題的版本號(hào)。
  • Text Domain – 用于國(guó)際化。您可以僅在模板名稱的末尾附加“-child”。
  • License – 保留默認(rèn)值。
  • License URI –保留默認(rèn)值。

除了Template行之外,您輸入的內(nèi)容并不重要,因此不要過分強(qiáng)調(diào)。只要確保正確輸入Template 父主題的文件夾名稱即可。

如果將來要添加自己的自定義樣式,可以將其添加到樣板代碼下面的此樣式表中。

functions.php

接下來,您需要為您的子主題創(chuàng)建functions.php文件。同樣,這是讓您從父主題中引入完整CSS樣式表的原因。

functions.php文件中,添加以下代碼:

<?php

/* Function to enqueue stylesheet from parent theme */

function child_enqueue__parent_scripts() {

wp_enqueue_style( 'parent', get_template_directory_uri().'/style.css' );

}

add_action( 'wp_enqueue_scripts', 'child_enqueue__parent_scripts');

將文件上傳到WordPress網(wǎng)站

擁有style.css文件和functions.php文件后,您需要將它們作為新主題上傳到WordPress網(wǎng)站。

為此,請(qǐng)使用FTP連接到您的WordPress網(wǎng)站。

然后,瀏覽到站點(diǎn)的主題目錄(wp-content/themes),并為您的子主題創(chuàng)建一個(gè)新文件夾。

例如,如果父主題的文件夾是hello-elementor,則可以命名子主題文件夾 hello-elementor-child來幫助您記住它。

然后,將您的style.cssfunctions.php文件上傳到該文件夾??中:

上傳兩個(gè)文件后,您可以轉(zhuǎn)到外觀→主題并激活您的子主題,就像其他任何WordPress主題一樣。

如何安裝WordPress子主題

我們?cè)谏厦娴奶囟ǚ椒ㄖ姓劦搅似渲械囊恍﹥?nèi)容,但讓我們?cè)俅翁接懭绾伟惭bWordPress子主題。

如果您是從主題開發(fā)者那里下載預(yù)制的子主題,而不是自己創(chuàng)建,則這也將非常有用。

您可以像安裝其他任何WordPress主題一樣安裝WordPress子主題:

  • 轉(zhuǎn)到WordPress儀表板中的外觀→主題
  • 單擊添加新
  • 上傳您的子主題的ZIP文件。

在安裝過程中,WordPress將檢測(cè)到您正在上傳子主題,并檢查以確保父主題存在:

上傳文件后,請(qǐng)確保激活它。

請(qǐng)記住,為了讓您的子主題的工作,你需要同時(shí)安裝父主題和子主題。然后激活子主題,同時(shí)保留父主題(不能刪除)。

它應(yīng)該是這樣的:

  1. 子主題是激活的主題
  2. 父主題仍已安裝,但未激活

如何自定義子主題

與自定義常規(guī)WordPress主題一樣,您可以使用多種選項(xiàng)來“自定義”子主題。

準(zhǔn)確地說,您并不是在真正自定義子主題,而是在使用子主題自定義現(xiàn)有主題(父主題)。

首先,我們將向您展示一些使用代碼自定義子主題的方法。然后,我們將分享一種使用Elementor Theme Builder定制主題的更簡(jiǎn)單方法。

使用代碼自定義子主題

如果要使用代碼自定義子主題,則需要具有CSS,HTML和PHP的良好使用知識(shí)。

您可以執(zhí)行以下操作:

添加自定義CSS

要使用CSS自定義子主題,可以將CSS直接添加到子主題的style.css文件中。

在文件頂部現(xiàn)有代碼下方添加CSS。

只要您使用相同的選擇器,添加到子主題的任何CSS都會(huì)覆蓋父主題。

覆蓋現(xiàn)有模板

如果要覆蓋父主題的模板,則可以:

  • 將模板文件從父主題復(fù)制到子主題。
  • 在您的子主題中編輯模板文件。

例如,如果要編輯single.php,則應(yīng)首先將single.php文件從父主題復(fù)制到子主題(請(qǐng)確保保留相同的目錄結(jié)構(gòu),如果適用)。

然后,您可以在子主題的single.php版本中編輯代碼。

注意:只要名稱相同,WordPress就會(huì)使用子主題中的模板。因此,您實(shí)際上是在“覆蓋”父主題中的現(xiàn)有模板。

如果您使用上面提到的Child Theme Configurator插件,它可以幫助您將文件復(fù)制到您的child主題,而無需離開WordPress儀表板。

添加新模板

除了復(fù)制和編輯父主題的現(xiàn)有模板之外,您還可以在子主題中創(chuàng)建新的自定義模板。

例如,如果要為添加的自定義文章類型創(chuàng)建模板,則可以將該模板添加到子主題中。

拓展閱讀:使用WordPress的子主題功能修改你的WordPress主題

使用Elementor Theme Builder自定義子主題

注:如果您的父主題是使用 Elementor 可視化編輯器的,并且你使用的是收費(fèi)版的 Elementor Pro,那可以通過它的 Theme Builder 功能來自定義子主題,否則,你可以跳過這個(gè)部分的內(nèi)容,繼續(xù)往下看。

如果您不熟悉,Elementor Theme Builder可讓您使用可視化的拖放界面自定義部分或全部WordPress主題。

使用Elementor Pro和Theme Builder,您可以為網(wǎng)站的以下網(wǎng)站創(chuàng)建自定義模板:

  • 頁(yè)眉
  • 頁(yè)腳
  • 單個(gè)貼子(例如,單個(gè)博客文章或頁(yè)面)
  • 存檔(例如,列出您所有博客文章的頁(yè)面)

這些模板可與您的子主題和父主題一起使用。

使用Elementor Theme Builder,您無需直接使用代碼。無需添加自定義CSS或復(fù)制PHP模板文件-您只需拖放即可完成所有操作。

例如,假設(shè)您要自定義子主題的頁(yè)眉。無需將header.php文件復(fù)制到子主題然后編輯PHP,只需使用Elementor的可視化拖放界面設(shè)計(jì)一個(gè)新的頁(yè)眉即可。然后,您可以將該頁(yè)眉應(yīng)用于網(wǎng)站上的任何地方,也可以僅應(yīng)用于網(wǎng)站的特定部分。

如果您不了解CSS,HTML和PHP,則這種無需代碼的方法使您仍然可以自定義子主題。即使這樣做,與嘗試直接在模板文件中使用PHP相比,這種可視化方法仍可以節(jié)省大量時(shí)間。

使用Elementor Theme Builder創(chuàng)建新模板時(shí),將可以選擇模板的類型。例如,頁(yè)眉/Header。

然后,您可以從空白開始,也可以選擇Elementor Pro的預(yù)制模板之一:

從那里,您可以使用拖放和側(cè)邊欄選項(xiàng)來控制頁(yè)眉的外觀:

完成后,您可以精確選擇要使用此頁(yè)眉模板的位置:

要了解更多信息,請(qǐng)查看Elementor Theme Builder可以做的所有事情

如何刪除WordPress子主題

如果您想停止使用子主題,可以像常規(guī)WordPress主題一樣停用它:

  • 轉(zhuǎn)到外觀→主題
  • 激活另一個(gè)主題。父主題或全新的WordPress主題。

請(qǐng)記住 – 如果您停用子主題并返回到父主題,那么通過子主題添加的所有更改將不再存在。

相反,您將回到父主題的設(shè)計(jì)。

立即開始使用WordPress子主題

WordPress子主題可幫助您安全地更改WordPress主題。

您的子主題將從其父主題繼承所有樣式,但是您對(duì)子主題所做的任何更改都將覆蓋父主題。這意味著您可以安全地更新父主題,而不會(huì)丟失對(duì)子主題所做的更改。

要開始使用WordPress子主題,您可以:

  • 檢查主題的開發(fā)人員是否已經(jīng)提供了預(yù)制的子主題。如果您正在使用Hello Elementor,則可以從GitHub下載該主題的子主題
  • 使用免費(fèi)的Child Theme Configurator插件。
  • 手動(dòng)創(chuàng)建您的子主題。

從那里,您可以使用CSS、HTML和PHP自定義子主題。或者,您可以跳過代碼,并使用Elementor Theme Builder使用可視化的拖放界面自定義主題。

您還對(duì)使用WordPress子主題還有任何疑問嗎?在評(píng)論部分讓我們知道,我們將盡力提供幫助!

注:本文內(nèi)容出自 elementor.com,由 WordPress大學(xué) 翻譯整理。

繼續(xù)閱讀:

聲明:本站所有文章,如無特殊說明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個(gè)人或組織,在未征得本站同意時(shí),禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書籍等各類媒體平臺(tái)。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。

給TA打賞
共{{data.count}}人
人已打賞
歡迎關(guān)注WordPress大學(xué)公眾號(hào) WPDAXUE
WordPress開發(fā)

WordPress主題團(tuán)隊(duì)開發(fā)Web字體加載器,本地化Web字體加載

2020-9-29 10:03:25

WordPress開發(fā)

如何在WordPress子主題中覆蓋父主題的函數(shù)功能

2020-10-30 9:26:47

0 條回復(fù) A文章作者 M管理員
    暫無討論,說說你的看法吧
?
個(gè)人中心
購(gòu)物車
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索

隆昌县| 英超| 六安市| 湟中县| 香港| 枞阳县| 顺昌县| 织金县| 衢州市| 黄浦区| 平南县| 保靖县| 南雄市| 轮台县| 津市市| 麻江县| 延寿县| 宣城市| 深水埗区| 资中县| 清徐县| 普陀区| 镇康县| 项城市| 雅安市| 九龙城区| 宕昌县| 海兴县| 游戏| 微山县| 成安县| 海淀区| 布拖县| 大城县| 阿拉善右旗| 阳信县| 曲阳县| 额济纳旗| 新田县| 曲阳县| 建水县|