在本系列教程的第一部分,我介紹了不一樣類型的主題框架並解釋了它們是如何工做的。html
在你開始創建你的主題框架以前,你須要考慮它是如何工做的,以及它將會被用來作什麼,這樣你才能從一開始就找到最合適的開發途徑。git
在這一課中,我將帶領你逐一瞭解你須要考慮的每個方面,包括你的框架是否面向公衆開放,是非程序員仍是開發人員使用它,以及你也許想添加的其餘的一些功能。程序員
要決定你的開發途徑需分兩步走:一,肯定你的主題框架會如何使用;二,在此基礎上,確認你須要包括的全部內容。github
如何使用你的主題框架?
使用主題框架的途徑會影響到你要包括的內容和構建框架的方式。web
考慮以下:編程
- 你的主題框架的受衆——僅僅是你或其餘的一些開發人員?
- 你的主題框架會提供給幾乎沒有編程經驗的開發人員或者用戶使用嗎?
- 你的主題框架是否會面向公衆開放?
僅僅是你或其餘的一些開發人員?
若是你的框架只是爲了知足你我的須要的話,在開發的時候你就只須要考慮你本身的需求了;可是,從長遠來看,儘可能把它從一開始就創建得儘量穩健仍是頗有意義的,因此你應該:框架
- 使用WordPress編碼標準
- 應用DRY(切勿複製本身)原則
- 使用W3C驗證檢查器能夠驗證的代碼,並確保你的代碼是能夠訪問的。
- 添加代碼說明——即便別人不看你的代碼,當你不少個月以後再次進行編寫時,你也會驚奇地發現忘記一段代碼是多麼容易的一件事。
- 使用版本控制框架的更新。
若是你的主題框架會被提供給其餘的開發人員(或許就是你的同事)使用的話,那麼除了要採用以上全部的作法外,你也許還須要:ide
- 提供框架結構、函數和掛鉤的概述文件。
- 考慮你在代碼上分享和協做的方式——使用一個協做系統會使這一切變得異常簡單,例如GitHub。
- 記錄下你的版本,或者將它們鏈接到「里程碑」(milestones)和/或在GitHub上釋放。
提供給開發人員或用戶?
一些主題框架是專門提供給不會編碼的用戶使用的,這些用戶不用寫任何代碼就能夠普遍地自定義主題框架,而另外一些是給開發人員用的,會提供掛鉤和函數以便他們能夠用來自定義和拓展本身的框架。還有的二者都行,會有一個綜合用戶界面和一個API(應用程序界面)。wordpress
你的框架會被非開發人員使用並不意味着你要將它釋放給公衆——你也許有同事是網站設計師,你想賦予他們訪問的權限,或者是讓你的客戶使用你的框架來自定義他們的網站。函數
若是你的框架面對的是不會編碼的用戶的話,你須要考慮:
- 一個或更多的主題選項界面,以便你的用戶能夠自行定義。
- 能夠選擇使用主題定製器來代替主題選項界面,優勢是用戶在定製主題的同時能直接地看到它們的變化,或者二者都行。
- 小工具區域,容許用戶在網頁的不一樣地方添加他們本身的內容。
- 菜單,以便用戶能夠瀏覽網站(包含菜單的區域也許不止一個,這個由你來決定)。
- 子主題支持,以便用戶能快速安裝並建立一個工做網站。
- 函數庫,包含你想有的全部功能,好比滑塊或燈箱特效。
- 必要的說明文件和相關幫助,以便用戶知道如何來使用你的全部成果(其中一些是很是有用的,但切記慢來,逐步完善)
若是你的目標受衆是一些專業開發人員,他們會結合本身的子主題和/或插件一同使用你的主題框架,那麼你可能要考慮上述的一些內容,可是你也須要去考慮包含下面列表中的功能:
- 動做掛鉤(action hooks)使得開發人員能將本身的代碼插入到你的模板文件中,而不須要建立一個重複的模板文件。
- 過濾掛鉤(filter hooks)容許開發人員修改模板文件的輸出內容。
- 開發人員能在他們的子主題中使用自定義函數。
- 模板部分和包含文件,以減小代碼的重複。這樣,在使用框架時你會從中受益許多,若是理論上須要在子主題中建立模板文件的話,其餘的開發人員也會發現這十分有用。
- 確保你的文件命名和結構的邏輯合理性,並要給這些文件添加相應的說明,這樣人們才能很容易地找到他們。
公開與否?
若是你計劃向公衆發佈你的框架的話,那麼就有一整套另外須要考慮的事項:
- 若是你要經過WordPress主題庫提交你的框架做爲一個主題的話,你須要遵照主題審查指南。
- 因爲用戶可能會在任意場景和網站類型中使用你的框架,你須要去測試你的框架是否能在各類環境中正常工做,也許你能夠爭取其餘的用戶和開發人員幫助你進行這方面的測試。
- 某些類型的文檔不管對開發人員仍是用戶來講都是必不可少的,固然這取決於你的目標受衆。
您還須要考慮如何將你的框架市場化:即便它是免費的,若是你但願更多的人去使用它,那麼你就須要經過一個網站來宣傳它,其餘的方式有社交媒體、搜索引擎優化(SEO)、第三方主題商店、口口相傳、當地聚會、WordCamps大會(由 WordPress 用戶自發組織的非盈利性質大會)等。
Elixir - Restaurant WordPress Theme
你的主題框架應該包括哪些內容?
你的主題的功能有很大一部分將由你剛確認的用戶的需求來決定。在決定主題框架的受衆時,若是有可能,能夠問問你的受衆的具體需求,而後列出你的主題將包含的一些功能特徵。
這張列表會包括(但不只限於)如下選擇:
- 模板文件(包括模板部分和包括文件)
- 函數
- 動做掛鉤(action hooks)和過濾掛鉤(filter hooks)
- 小工具區域
- 目錄
- 選項和設置界面
- 主題定製器支持
- 文件
- 子主題
對於這些,須要確認:
- 它的具體功能是什麼
- 它會作什麼
- 它的代碼會在哪裏出現
除了這些由不一樣用戶羣體決定的功能之外,你也許還想包含其餘的一些功能,如:
- 你的框架會具備一個內置的佈局嗎?這個佈局是可配置的仍是會經過子主題進行編碼?
- 這個功能在你的父主題中到底會有多少?一些框架具備極端最低樣式,而其餘人(好比我本身)採用面向對象的CSS(OOCSS)會使得樣式製做在子主題中變得更加簡單。
- 你的框架是響應式的仍是經過子主題進行編碼?若是你的父主題是響應式的,你須要確保在子主題這個OOCSS能派上用場的領域中,它不會被任何佈局樣式所覆蓋。
- 你會爲你的框架增長SEO(搜索引擎優化)功能,是由WordPress來提供,仍是由用戶使用一個獨立的插件來添加呢?
- 若是有必要在你的框架內進行添加或者經過子主題進行添加,你會將諸如滑塊、畫廊、背景圖像等等包括進去嗎?
這張列表可能隨着時間的推移,隨着你本身和用戶的需求的變化而發生改變。從一開始就要確保你的框架很容易進行拓展,而且不管什麼時候你都能添加新的功能。
小結
開發出你本身的主題框架能夠說是一大創舉。從長遠來看,這將節省你不少的開發時間,可是這也要花費大量的工做。
花一些時間去了解使用主題框架的受衆,以及他們到底須要什麼樣的功能,由於這不管對於本身仍是其餘用戶,都頗有意義和價值,而且未來若是想再對框架進行擴展和修改就會容易得多。