WordPress 中的子主題——如何以及為什麼使用它們

已發表: 2016-04-29

WordPress 背後的全部意義在於賦予人們構建、修改和調整自己的網站或博客的能力。 就在十年前,這是您需要聘請專業設計師/開發人員的事情。

如今,您可以自己照顧您的網站,並且可以讓它看起來隨心所欲。

但是,如果您想超越WordPress 定制器允許您做的事情怎麼辦? 如果您想以更量身定制的方式修改有關當前 WordPress 主題的內容怎麼辦?

那麼,這就是兒童主題發揮作用的地方。

為什麼使用子主題

讓我們從硬幣的另一面開始:

如果您*不*使用子主題,而是對當前(正常)主題進行任何修改,那麼第一個缺點是,如果您更新主題,所有這些修改都將消失。

現在,我所說的修改是什麼意思:

  • 對任何主題的 PHP 文件進行的任何手動代碼編輯,
  • style.css文件的任何修改,
  • 您可能已放入主題目錄的任何新文件(這包括 PHP 文件、CSS 文件,甚至圖形,幾乎所有內容)——如果您有任何自定義頁面模板,這將是一個常見問題。

因此,再次強調這一點,一旦您更新主題,上述所有內容都會消失。

但是為什麼會這樣呢?

好吧,如果您使用的主題沒有像以往一樣更新,問題可能就沒有那麼嚴重了。 但是,大多數高質量的 WordPress 主題往往會更頻繁地更新。 這對於 WordPress 中的默認主題(例如二十五)尤其有效——只要有新版本的 WordPress 核心發布,它們就會更新。

在這種情況下,您不想錯過這些更新附帶的所有新內容和補丁。 實際上,它們使您的網站在新版本的 WordPress 上正常工作,並且還提高了整個事物的安全性(修復常見的安全漏洞和錯誤)。

但還有更多。 使用子主題還可以為您提供更好的工作組織形式的附加值。

事情就是這樣,如果您嘗試在當前的 WordPress 主題中編輯任何內容,則很容易搞砸。 例如,您可能會意外刪除一些重要的代碼行,甚至整個文件等。

使用子主題,所有修改都組織得更好。 子主題目錄中的每個文件都只包含您自己的代碼,所以不要再懷疑“我是否修改了文件 X?”

如何構建您的第一個子主題

這部分非常簡單,幾乎不需要任何編碼。 不過,首先,一些一般準則:

  • 每個主題都可以是父主題。 換句話說,您可以為已有的任何主題構建子主題。
  • 兒童主題依賴於父母來完成他們的大部分“事情”。 以最基本的方式,空白子主題直接從父主題中獲取其所有代碼、設計、樣式等,而無需更改任何內容。
  • 子主題需要父母在場才能工作。 刪除父主題後,您的子主題將不再起作用。
  • 如前所述,您可以更新父主題而不會丟失任何修改。
  • 如有任何情況,您可以隨時切換到父主題,然後返回主題的原始版本。

現在,進入操作方法。 一個子主題只需要一些東西:

  • wp-content/themes中的一個新目錄,並且有一個唯一的名稱/slug,無論你想怎麼稱呼它,
  • 該新目錄中的樣式表文件 - style.css
  • 和一個functions.php文件。

這是我為之前的 WordPress 默認主題構建的示例子主題 - 二十五。 我首先創建了一個名為t15-child的目錄:

孩子

接下來,我在該目錄中創建了兩個新文件並將它們命名為style.cssfunctions.php

子主題目錄

讓我們先編輯style.css文件。 這是我的:

 /* Theme Name: T15 child KK Theme URI: http://karol.cc/ Author: Karol K Author URI: http://karol.cc/ Template: twentyfifteen Description: My child of twentyfifteen Version: 1.0.0 License: GNU General Public License v2.0 License URI: http://www.gnu.org/licenses/gpl-2.0.html Text Domain: t15-child */

如您所見,沒有什麼太花哨的。 其中的兩條關鍵線已被突出顯示:

  • 主題名稱– 新子主題的名稱,它將出現在wp-adminAppearance / Themes下。

兒童主題

  • 模板——這裡最重要的一行——它通過它的 slug 指向父主題。

然後,讓我們轉到functions.php文件。 我唯一擁有的東西是:

 <?php function theme_enqueue_styles() { $parent_; wp_enqueue_style($parent_style, get_template_directory_uri().'/style.css'); wp_enqueue_style('child-style', get_stylesheet_directory_uri().'/style.css', array($parent_style)); } add_action('wp_enqueue_scripts', 'theme_enqueue_styles');

這只是一個簡單的新功能。 它負責兩件事:

  • 它獲取父主題的原始樣式表,並且
  • 它“打開”新的style.css文件,以便您可以在該文件中對主題的設計進行進一步修改。

其他需要記住的重要事項:

  • 現在,您可以自由修改新的style.css文件。 無論您放什麼新類,或修改任何舊類,都會影響您的網站及其外觀。
  • 您可以將其他 PHP 文件添加到子主題的目錄中。 這些文件可以是全新的——例如,對於新的自定義模板——或者它們可以替換父主題的標准文件。 例如,您可以創建一個全新版本的single.php文件來處理您的博客文章的顯示方式。
  • 您放入新的functions.php文件中的所有內容都將類似於父主題中的本機functions.php文件的工作方式執行。

您創建了您的兒童主題了嗎?

在這個階段,您的工作已經完成,您現在有了一個基本的子主題,您可以使用它來對您的網站進行進一步的修改。 或者,您可以簡單地使用這個新的子主題來確保您所做的任何調整都將在父主題的未來更新中保留。

你怎麼看這裡? 您是否打算在您的 WordPress 網站或博客上使用子主題?