WordPress 主題框架是如何工做的

主題框架能夠說是無比強大的!對於非技術型的 WordPress 用戶來講,主題框架使得創建一個獨一無二並看起來像是運行一個量身定製的主題的網站成爲可能,而且對於 WordPress 開發者來講,它們可以幫助你在運用DRY(切勿複製本身)原則的同時,快速創建起一個自定義網站。web

若是你使用了一段時間的第三方框架以後,發現其代碼臃腫並缺少靈活性,並對此感到十分沮喪的話,又或者你僅僅是想能徹底掌控你本身的代碼,那麼創建一個你本身的主題框架無疑就是最好的選擇了!編程

在本系列教程中,你將學習如何去建立你本身的 WordPress 主題框架,從而爲你本身或者你的客戶創建一個網站,又或者發佈分享給其餘用戶。你將會通過如下幾個階段的學習,包括建立具有框架基礎的父主題、添加額外的功能、鉤子(也能夠叫「掛鉤」)等等。同時,你也將會學習如何在你的子主題和插件中使用這些技巧,而且知道如何向公衆公開分享你的代碼等等。框架

可是在開始以前,你須要知道主題框架是如何工做的,而且究竟是什麼使得它們不一樣於一個標準父主題。函數

我花了一些時間開發了兩個主題框架,分別應用於兩種類型的客戶網站,隨着時間的推移我不斷地增強和改進它們的一些應用。我也曾與第三方合做開發過一些主題框架。以個人經驗來看,一個主題框架應該有如下幾個主要特色:工具

  • 一般它主要由一個父主題組成,這個父主題會被設計成能與子主題聯合使用。在某些狀況下,父主題也會單獨使用,可是在其餘一些狀況下,父主題非得和子主題連在一塊兒才能使用——WordPress 法典將其分別定義爲「基礎/入門主題」和「代碼庫」。
  • 一般它包括一些能夠被子主題和插件利用的鉤子和函數。你的主題框架是整個生態系統的基礎,它還包括部分與框架鉤連的插件。
  • 若是是給由不會編程的用戶使用,它會包括主題選項頁面,這樣可讓用戶根據本身的需求來自定義主題。設計、佈局、功能和內容等等均可以是多樣且混合的。在某些狀況下,一些功能能夠經由主題定製器來提供。
  • 它可能包括多個小工具區域,於是非技術用戶能夠經過 WordPress 小工具(包括你專門爲框架編寫的經過插件添加的小工具)添加內容或代碼。
  • 它可能還包括腳本庫功能,如 jQuery 滑塊或燈箱特效。根據你和用戶的須要,你可能會須要在主題框架中將這些合併到一塊兒,或提供一些與框架相鉤連的插件。
  • 一般它是可擴展的,並能用鉤子讓你經過子主題和相關插件擴展其功能。

上述第一點和第二點是最根本的——若是沒有一個父主題,你就不會有一個主題框架。而一個不具有那些鉤子和函數的父主題僅僅只能算是一個基本父主題,不能說是一個真正的主題框架。佈局

以上所述就是關於主題框架的部分了,但它們到底是如何運做的呢?讓咱們先來看看一個主題框架的要素:學習

  • 父主題和可供選擇的子主題
  • 動做和過濾掛鉤
  • 函數
  • 主題選項
  • 小工具
  • 腳本
  • 可擴展性

AD:Web Studio字體

父主題和子主題

一個主題框架的主要組成成分是父主題,它能夠用兩種方式來設計:網站

  • 做爲初始主題,能夠自行經過主題選項界面或主題定製器來自定義。這方面的例子包括 Atahualpa  和 Thematic。這兩個能夠做爲不使用子主題的獨立主題的典範。
  • 因爲網站的一個基礎須要經過一個子主題來添加,因此若是沒有這個子主題的話,主題框架將不能有效地運用於網站。這樣的例子有Hybrid Core 和 Genesis。這些將包括一些基本的代碼,你一般會在一個有着一系列鉤子和函數的主題中找到,這些鉤子和函數能夠經過子主題加以利用,固然也能夠經過相關插件。全部這些便構成了適用於主題框架的API(應用程序界面)。

因爲主題框架的關鍵特徵之一是DRY原則,因此只要有可能,你的父主題就會利用模板部件和包含文件​,這意味着你能夠在你的主題的多個位置訪問同一代碼。這也使得你在子主題中從新改寫代碼變得更加容易,由於你只需更換一個模板部件或者是建立一個包含文件就好了。插件

暫時我不會在這裏解釋父主題和子主題的概念,由於在「子主題教程」中會有相關的介紹。雖然不少主題框架配備了一系列支持自身的子主題,可是若是你想要有其餘更適合本身的子主題就只有本身動手開發了。

若是你正在開發本身的主體框架,我建議你建立至少一個「初始」子主題,以免重複參與制定每一個項目的工做:你可能會針對不一樣類型的項目決定去建立多個子主題做爲其基礎,例如一些子主題博客和非博客網站。

動做掛鉤和過濾掛鉤

當添加自定義代碼或更改主題的行爲方式時,一個主題框架會包括一系列與子主題和插件相聯繫的掛鉤:

  • 行動掛鉤(Action hooks)會出如今代碼中的多個地方,使你可以經過主題框架中編寫的函數將相關代碼添加到你的模板文件中,而這個主體框架能夠經過子主題來覆蓋。我本身的主題框架大量地運用了動做掛鉤,這些掛鉤在全部的模板文件中都有提供,從而讓用戶能夠在諸如小工具區域、聯繫方式等內容上自由發揮,並根據須要隨時隨地調用行動按鈕和站點特定代碼。
  • 過濾掛鉤(Filter hooks)能夠用來改變使用子主題或特定插件行爲的方式,例如自定義循環、修改靜態內容等等。任何靜態文本(或從你的網站外部調用的代碼)應該包裹在一個過濾器內,以便它能夠根據子主題的須要而變化。

在早期階段花一些時間來考慮你想要包含什麼掛鉤是很是值得的,由於這樣你就知道什麼內容須要經過一個鉤子來包含進去,什麼能夠直接編寫到你的模板文件之中。你會在接下來的教程中瞭解到這些。

函數

你的主題框架也可能包括一系列的函數。其中的一些會與你已經定義過的動做掛鉤和過濾掛鉤相鉤連,而其餘的一些則是例如模板標籤之類的函數,而且子主題可使用這些函數。

若是你曾在一些客戶網站上使用過任何自定義函數,那麼你也能夠將它們添加到你的主題框架之中。另外,你沒必要激活全部的函數:你只須要在你的子網站使用 add_action() 函數激活跟父主題相關的函數就行。

主題選項

主題選項界面對任何複雜的主題來講都是頗有用的,對於非技術用戶來講,更是如此。一些主要的主題框架都會在本身的管理區域內包含多個主題選項界面,其選項包括開關功能、修改佈局、添加內容和改變設計元素,如顏色、背景圖片、字體和標題圖像等等。

您能夠選擇使用主題定製器來完成您的許多選項,其優勢是可讓你的用戶在定製主題的同時能直接地看到它們的變化。對於Edupress主題框架,我便採起了這種作法,其中的學校網站是我和馬克·威爾金森一塊兒開發的。

小工具區域

你是否須要選擇添加一系列小工具區域將取決於你的主題框架的受衆:若是僅僅是你本身或者是一個小團隊的開發人員來使用的話,你也許並不須要在標準側邊欄和頁腳上面添加任何小工具區域。

可是,若是你的主題框架面對的是非技術用戶的話,你能夠經過在主題框架的各個地方註冊多個小工具區域從而給予其更多的靈活性。你也能夠在網站頭部、標準側欄和頁腳中,在內容以前和/或以後,以及在頁腳下方註冊小工具區域。

個人客戶網站所使用的主題框架在頁腳中包含四個小工具區域:主題會檢查哪些被填充了並據此添加CSS類,所以被填充的小工具區域將會各自佔據頁面適當的寬度。

你的小工具區域可能會被直接編寫到你的模板文件中,或者你可能會決定(就像我同樣)經過動做掛鉤將其添加到您網站的相關位置。這意味着它們能夠在子主題中被覆蓋,不管是可供選擇性的小工具區域仍是自定義代碼。

腳本

若是一個給定的腳本極可能被一些創建在你本身主題框架之上的網站所使用,或者若是你的用戶是非技術型的,你又想要提供更多的選項,那麼你能夠在你的框架中包含一些特定的腳本,如一個滑塊或燈箱特效腳本。這可讓用戶無需去安裝額外的插件,但若是實際上這些腳本並不是必要,那麼這些代碼就會顯得臃腫,這也是它的不足之處。

一樣的,這將取決於你的受衆和預期的需求:若是它只是你用來工做的框架,我建議使用這些腳本開發(或標識)這些插件,何時須要即可以拿來使用。

若是你真的包含了這些腳本,那麼就等因而包含了在主題選項界面上的啓用和禁用選項。

可擴展性

若是目前你的框架對某一系列網站很是有用,那麼在未來你也許但願它具備可擴展性。構成框架核心的父主題至關因而這個生態系統的心臟,你和你的主題用戶將會爲本身的網站進一步完善開發並添加更多的選項和功能。這將包括:

  • 子主題或初始主題——這些名單極可能隨着時間的推移而有所變化,特別是若是你向公衆發佈了你的主題。
  • 專爲你的框架設計的插件每每要經過框架特定的掛鉤激活。

它還可能包括一些對於其餘想要使用你的框架的開發人員有用的文檔:最重要的主題框架配備了大量的文檔,開發人員能夠用來自定義他們在框架上創建的網站或者爲其餘用戶建立一些子主題或插件。

小結

主題框架是 WordPress 開發者武器庫中一個十分強大的工具。正如咱們所看到的,它不只對成千上萬使用其來建立自定義 WordPress 網站的全部者(非技術型)來講相當重要,對任何其餘的開發者來講,也是一個不可多得的工具,不管這些開發者是想爲本身仍是爲其客戶建立多種多樣的網站。

主題框架一般有一些這樣的特徵:可擴展性和靈活性,並且讓你或者你的用戶可以很容易地經過使用子主題,以及訪問相關函數和你的框架所提供的鉤子來自定義網站。

咱們已經知道了主體框架是如何工做的,在這個系列接下來的課程中,你會了解你的框架須要作什麼,它須要爲誰工做等問題,而這將幫助你決定你的主題框架最合適的發展途徑。

相關文章
相關標籤/搜索