https://codex.wordpress.org/Theme_Development
本文是關(guān)于開發(fā)WordPress主題。如果您想了解有關(guān)如何安裝和使用主題的更多信息,請查看使用主題。本主題與使用主題不同,因為它討論了編寫代碼以構(gòu)建自己的主題的技術(shù)方面,而不是如何激活主題或在何處獲取新主題。
為什么WordPress主題
WordPress主題是一起工作以創(chuàng)建WordPress網(wǎng)站的設(shè)計和功能的文件。每個主題可能不同,為網(wǎng)站所有者提供了許多選擇,可以立即更改其網(wǎng)站外觀。
您可能希望開發(fā)WordPress主題供您自己使用,用于客戶端項目或提交到WordPress主題目錄。為什么還要構(gòu)建一個WordPress主題?
- 為WordPress網(wǎng)站創(chuàng)建獨(dú)特的外觀。
- 利用模板,模板標(biāo)簽和WordPress循環(huán)生成不同的網(wǎng)站結(jié)果和外觀。
- 為特定網(wǎng)站功能提供備用模板,例如類別頁面和搜索結(jié)果頁面。
- 要在兩個站點(diǎn)布局之間快速切換,或利用主題或樣式切換器,以允許站點(diǎn)所有者更改站點(diǎn)的外觀。
WordPress主題也有很多好處。
- 它將表示樣式和模板文件與系統(tǒng)文件分開,因此站點(diǎn)將升級而不會對站點(diǎn)的可視化表示進(jìn)行大幅更改。
- 它允許自定義該主題獨(dú)有的站點(diǎn)功能。
- 它允許快速更改WordPress網(wǎng)站的視覺設(shè)計和布局。
- 它消除了典型的WordPress網(wǎng)站所有者必須學(xué)習(xí)CSS,HTML和PHP才能擁有一個漂亮的網(wǎng)站的需要。
你為什么要建立自己的WordPress主題?這是真正的問題。
- 這是一個了解CSS,HTML和PHP的更多信息的機(jī)會。
- 這是一個將您的CSS,HTML和PHP專業(yè)知識用于工作的機(jī)會。
- 它很有創(chuàng)意。
- 這很有趣(大部分時間)。
- 如果你把它發(fā)布給公眾,你可以感覺很好,你分享并回饋給WordPress社區(qū)(好吧,吹牛的權(quán)利)
主題發(fā)展標(biāo)準(zhǔn)
應(yīng)使用以下標(biāo)準(zhǔn)對WordPress主題進(jìn)行編碼:
- 使用結(jié)構(gòu)良好,無錯誤的PHP和有效的HTML。請參閱WordPress編碼標(biāo)準(zhǔn)。
- 使用干凈,有效的CSS。請參閱CSS編碼標(biāo)準(zhǔn)。
- 遵循站點(diǎn)設(shè)計和布局中的設(shè)計準(zhǔn)則。
主題剖析
WordPress主題存在于WordPress主題目錄(默認(rèn)為wp-content / themes /)的子目錄中,無法使用wp-config.php文件直接移動。Theme的子目錄包含Theme的所有樣式表文件,模板文件和可選函數(shù)文件(functions.php),JavaScript文件和圖像。例如,名為“test”的主題將駐留在目錄wp-content / themes / test /中。避免使用主題名稱的數(shù)字,因為這會阻止它顯示在可用的主題列表中。
WordPress在每個新安裝中都包含一個默認(rèn)主題。仔細(xì)檢查默認(rèn)主題中的文件,以便更好地了解如何構(gòu)建自己的主題文件。
有關(guān)視覺指南,請參閱WordPress主題剖析中的此信息圖。
除圖像和JavaScript文件外,WordPress主題通常包含三種主要類型的文件。
- 樣式表名為style.css,它控制網(wǎng)站頁面的顯示(可視化設(shè)計和布局)。
- WordPress模板文件控制網(wǎng)站頁面生成WordPress數(shù)據(jù)庫中信息的方式,以顯示在網(wǎng)站上。
- 可選函數(shù)文件(functions.php)作為WordPress主題文件的一部分。
我們來看看這些。
兒童主題
最簡單的主題是一個子主題,它只包含一個style.css文件,以及任何圖像。這是可能的,因為它是另一個主題的孩子,作為其父母。
有關(guān)兒童主題的詳細(xì)指南,請參閱兒童主題。
主題樣式表
除了主題的CSS樣式信息外,style.css還以注釋的形式提供有關(guān)主題的詳細(xì)信息。樣式表必須以注釋的形式提供有關(guān)主題的詳細(xì)信息。不允許兩個主題在其注釋標(biāo)題中列出相同的詳細(xì)信息,因為這會導(dǎo)致主題選擇對話框中出現(xiàn)問題。如果您通過復(fù)制現(xiàn)有主題來制作自己的主題,請確保先更改此信息。
以下是樣式表的前幾行示例,稱為樣式表標(biāo)題,主題為“二十三”:
/ *
主題名稱:二十三
主題URI:http://wordpress.org/themes/twentythirteen
作者:WordPress團(tuán)隊
作者URI:http://wordpress.org/
描述:WordPress的2013年主題將我們帶回博客,其中包含各種帖子格式,每種格式都以自己獨(dú)特的方式精美呈現(xiàn)。設(shè)計細(xì)節(jié)比??比皆是,從鮮艷的配色方案和匹配的標(biāo)題圖像,漂亮的排版和圖標(biāo)開始,以及靈活的布局,無論大小,都可以在任何設(shè)備上看起來都很棒。
版本:1.0
許可證:GNU通用公共許可證v2或更高版本
許可證URI:http://www.gnu.org/licenses/gpl-2.0.html
標(biāo)簽:黑色,棕色,橙色,棕褐色,白色,黃色,淺色,單列,雙列,右側(cè)邊欄,靈活寬度,自定義標(biāo)題,自定義菜單,編輯風(fēng)格,特色圖像,微格式,后格式,rtl語言支持,粘貼帖子,翻譯就緒
文字域名:二十三
像WordPress這樣的主題是根據(jù)GPL許可的。
用它來制作一些很酷的東西,玩得開心,并與他人分享你學(xué)到的東西。
* /
注意:建議用于作者的名稱與主題作者的wordpress.org用戶名相同,盡管它也可以是作者的真實姓名。選擇是主題作者。
請注意用于描述主題的標(biāo)記列表。這些允許用戶使用標(biāo)記過濾器查找主題。您可以在主題評論手冊中找到完整列表。
style.css中的注釋標(biāo)題行是WordPress能夠識別主題并在“?設(shè)計”?>“?主題”下的“?管理面板”中將其顯示為可用主題選項以及任何其他已安裝主題所必需的。
樣式表指南
- 在編寫CSS時遵循CSS編碼標(biāo)準(zhǔn)。
- 盡可能使用有效的CSS。作為例外,使用特定于供應(yīng)商的前綴來利用CSS3功能。
- 最小化CSS黑客攻擊。明顯的例外是瀏覽器特定的支持,通常是IE的版本。如果可能,將單獨(dú)的CSS分成單獨(dú)的部分或單獨(dú)的文件。
- 所有可能的HTML元素都應(yīng)該由您的主題設(shè)置樣式(除非它是子主題),包括帖子/頁面內(nèi)容和評論內(nèi)容。
- 表格,標(biāo)題,圖像,列表,塊引號等。
- 強(qiáng)烈建議添加打印友好樣式。
- 您可以包含帶有media =“print”的打印樣式表,也可以在主樣式表中添加打印介質(zhì)塊。
功能文件
主題可以選擇使用函數(shù)文件,該文件位于theme子目錄中,名為functions.php。此文件基本上就像一個插件,如果它存在于您正在使用的主題中,它將在WordPress初始化期間自動加載(包括管理頁面和外部頁面)。建議用于此文件:
- 排隊主題樣式表和腳本。請參閱wp_enqueue_scripts。
- 啟用主題功能,如側(cè)邊欄,導(dǎo)航菜單,郵政縮略圖,郵政格式,自定義頁眉,自定義背景等。
- 定義主題的多個模板文件中使用的函數(shù)。
- 設(shè)置選項菜單,為網(wǎng)站所有者提供顏色,樣式和主題其他方面的選項。
默認(rèn)的WordPress主題包含一個定義了許多這些功能的functions.php文件,因此您可能希望將其用作模型。由于functions.php基本上用作插件,因此Function_Reference列表是獲取有關(guān)使用此文件可以執(zhí)行的操作的更多信息的最佳位置。
請注意決定何時向functions.php或特定插件添加函數(shù):?您可能會發(fā)現(xiàn)需要相同的函數(shù)才能使用多個父主題。如果是這種情況,則應(yīng)在插件中創(chuàng)建該函數(shù),而不是針對特定主題的functions.php。這可以包括模板標(biāo)簽和其他特定功能。所有主題都可以看到插件中包含的功能。
模板文件
模板是用于生成訪問者請求的頁面的PHP源文件,并以HTML格式輸出。模板文件由HTML,PHP和WordPress模板標(biāo)簽組成。
讓我們看一下可以定義為主題一部分的各種模板。
WordPress允許您為站點(diǎn)的各個方面定義單獨(dú)的模板。但是,讓您的站點(diǎn)的所有這些不同模板文件完全正常運(yùn)行并不是必需的。根據(jù)模板層次結(jié)構(gòu)選擇和生成模板,具體取決于特定主題中可用的模板。
作為主題開發(fā)人員,您可以使用模板選擇要實現(xiàn)的自定義量。例如,作為一種極端情況,您只能使用一個名為index.php的模板文件作為網(wǎng)站生成和顯示的所有頁面的模板。更常見的用途是讓不同的模板文件生成不同的結(jié)果,以允許最大程度的自定義。
模板文件列表
這是WordPress識別的主題文件列表。當(dāng)然,您的主題可以包含任何其他樣式表,圖像或文件。請記住,以下內(nèi)容對WordPress有特殊意義 -?有關(guān)詳細(xì)信息,請參閱模板層次結(jié)構(gòu)。
style.css文件
主要樣式表。這必須包含在您的主題中,并且必須包含主題的信息標(biāo)題。
rtl.css
rtl樣式表。如果網(wǎng)站的文字方向是從右到左,這將自動包含在內(nèi)。這可以使用RTLer插件生成。
的index.php
主要模板。如果您的主題提供了自己的模板,則必須存在index.php。
的comments.php
評論模板。
前page.php文件
首頁模板。
home.php
主頁模板,默認(rèn)為首頁。如果您使用靜態(tài)首頁,則這是包含最新帖子的頁面的模板。
single.php中
單個帖子模板。查詢單個帖子時使用。對于此模板和所有其他查詢模板,如果查詢模板不存在,則使用index.php。
單{型交} .PHP
查詢自定義帖子類型中的單個帖子時使用的單個帖子模板。例如,single-book.php將用于顯示名為“book”的自定義帖子類型的單個帖子。如果自定義帖子類型的查詢模板不存在,則使用index.php。
page.php文件
頁面模板。在查詢單個頁面時使用。
category.php
該類別的模板。查詢類別時使用。
tag.php
該標(biāo)簽?zāi)0?/a>。查詢標(biāo)記時使用。
taxonomy.php
該術(shù)語的模板。在查詢自定義分類中的術(shù)語時使用。
author.php
在筆者的模板。在查詢作者時使用。
date.php
日期/時間模板。在查詢?nèi)掌诨驎r間時使用。年,月,日,小時,分鐘,秒。
archive.php
存檔模板。在查詢類別,作者或日期時使用。請注意,category.php,author.php和date.php將為其各自的查詢類型覆蓋此模板。
search.php中
搜索結(jié)果模板。在執(zhí)行搜索時使用。
attachment.php
附件模板。查看單個附件時使用。
image.php
圖像附件模板。查看單個圖像附件時使用。如果不存在,將使用attachment.php。
404.php
在404未找到模板。當(dāng)WordPress找不到與查詢匹配的帖子或頁面時使用。
這些文件對于WordPress具有特殊含義,因為根據(jù)模板層次結(jié)構(gòu),當(dāng)相應(yīng)的條件標(biāo)記返回true?時,它們可用作index.php的替代品(如果可用)。例如,如果只顯示一個帖子,則is_single()函數(shù)返回“true”,如果活動主題中有single.php文件,則該模板用于生成頁面。
基本模板
至少,WordPress主題包含兩個文件:
- style.css文件
- 的index.php
這兩個文件都進(jìn)入Theme目錄。該的index.php?模板文件非常靈活。它可用于包括對標(biāo)題,側(cè)邊欄,頁腳,內(nèi)容,類別,存檔,搜索,錯誤以及在WordPress中創(chuàng)建的任何其他頁面的所有引用。
或者,它可以分為模塊化模板文件,每個文件都承擔(dān)部分工作量。如果您不提供其他模板文件,WordPress可能具有默認(rèn)文件或函數(shù)來執(zhí)行其作業(yè)。例如,如果您不提供searchform.php模板文件,則WordPress具有顯示搜索表單的默認(rèn)功能。
典型的模板文件包括:
- 的comments.php
- 評論-popup.php
- footer.php
- header.php文件
- 的sidebar.php
使用這些模板文件,您可以將模板標(biāo)記放在index.php主文件中,以將這些其他文件包含在您希望它們出現(xiàn)在最終生成的頁面中。
- 要包含標(biāo)頭,請使用get_header()。
- 要包含側(cè)邊欄,請使用get_sidebar()。
- 要包含頁腳,請使用get_footer()。
- 要包含搜索表單,請使用get_search_form()。
以下是包含用法的示例:
<?php get_sidebar(); ?>
<?php get_footer(); ?>
某些模板函數(shù)的默認(rèn)文件可能已棄用或不存在,您應(yīng)在主題中提供這些文件。從3.0版開始,不推薦使用的默認(rèn)文件位于wp-includes/theme-compat
。例如,您應(yīng)該提供header.php文件的函數(shù)get_header()安全工作,并comments.php文件的功能comments_template()?。
有關(guān)這些各種模板如何工作以及如何在其中生成不同信息的更多信息,請閱讀模板文檔。
自定義頁面模板
定義每個頁面模板的文件位于主題目錄中。要為頁面創(chuàng)建新的自定義頁面模板,您必須創(chuàng)建一個文件。讓我們?yōu)槲覀兊捻撁?em>snarfer.php調(diào)用我們的第一個頁面模板。在snarfer.php文件的頂部,輸入以下內(nèi)容:
<?PHP
/ *
模板名稱:Snarfer
* /
?>
上面的代碼將此snarfer.php文件定義為“Snarfer”模板。當(dāng)然,“Snarfer”可以替換為大多數(shù)文本以更改頁面模板的名稱。此模板名稱將顯示在主題編輯器中,作為編輯此文件的鏈接。
該文件可能被命名幾乎與任何東西.PHP擴(kuò)展(見預(yù)留主題文件名你要的文件名不能使用;這些是用于特定目的的專用文件名WordPress的儲備)。
以上五行代碼取決于您。您編寫的其余代碼將控制使用Snarfer頁面模板的頁面的顯示方式。有關(guān)可用于此目的的各種WordPress模板函數(shù)的說明,請參閱模板標(biāo)記。您可能會發(fā)現(xiàn)將其他模板(可能是page.php或index.php)復(fù)制到snarfer.php然后將上面五行代碼添加到文件的開頭會更方便。這樣,您只需要更改?HTML和PHP代碼,而不是從頭開始創(chuàng)建它們。示例如下所示。創(chuàng)建頁面模板并將其放在主題目錄中后,在創(chuàng)建或編輯頁面時,它將作為選項提供。(注意:創(chuàng)建或編輯頁面時,除非以上述方式定義至少一個模板,否則不會顯示“頁面模板”選項。)
基于查詢的模板文件
WordPress可以為不同的查詢類型加載不同的模板。有兩種方法可以做到這一點(diǎn):作為一部分內(nèi)置模板層次結(jié)構(gòu),并通過使用條件標(biāo)簽內(nèi)的循環(huán)模板文件。
要使用模板層次結(jié)構(gòu),您基本上需要提供專用模板文件,這些文件將自動用于覆蓋index.php。例如,如果您的Theme提供了一個名為category.php的模板并且正在查詢某個類別,那么將加載category.php而不是index.php。如果category.php不存在,則像往常一樣使用index.php。
通過提供名為category-6.php的文件,您可以在模板層次結(jié)構(gòu)中獲得更具體的信息?-?在為ID編號為6的類別生成頁面時,將使用此文件而不是category.php。如果您在WordPress版本2.3及更低版本中以站點(diǎn)管理員身??份登錄,則可以在管理?>?類別中找到類別ID號。在WordPress 2.5中,ID列已從管理面板中刪除。您可以通過單擊“編輯類別”找到類別ID '并在URL地址欄上查找cat_ID值。它將顯示'... categories.php?action = edit&cat_ID = 3'其中'3'是類別ID)。有關(guān)此過程如何工作的更詳細(xì)信息,請參閱類別模板。
如果您的主題需要更多地控制使用哪些模板文件而不是模板層次結(jié)構(gòu)中提供的模板文件,則可以使用條件標(biāo)記。條件標(biāo)記基本上在WordPress循環(huán)中檢查是否某些特定條件為真,然后您可以根據(jù)該條件加載特定模板,或在屏幕上放置一些特定文本。
例如,要在僅在特定類別中找到的帖子中生成獨(dú)特的樣式表,代碼可能如下所示:
<?PHP
if(is_category('9')){
get_template_part('single2'); //在ID為“9”的類別中查找帖子
} else {
get_template_part('single1'); //把它放在每個其他類別的帖子上
}
?>
或者,使用查詢,它可能如下所示:
<?PHP
$ post = $ wp_query-> post;
if(in_category('9')){
get_template_part('single2');
} else {
get_template_part('single1');
}
?>
在任何一種情況下,此示例代碼將導(dǎo)致使用不同的模板,具體取決于所顯示的特定帖子的類別。查詢條件不限于類別,但請參閱條件標(biāo)簽文章以查看所有選項。
定義自定義模板
可以使用WordPress插件系統(tǒng)來定義根據(jù)您自己的自定義條件顯示的其他模板。可以使用“template_include”?操作掛鉤完成此高級功能。有關(guān)創(chuàng)建插件的更多信息,請參閱Plugin API參考。
包括模板文件
要將另一個模板(除了標(biāo)題,側(cè)邊欄,頁腳,其中包含預(yù)定義的包含命令,如get_header())加載到模板中,您可以使用get_template_part()。這使主題可以輕松地重用代碼段。
從模板引用文件
在同一主題中引用其他文件時,請避免使用硬編碼的URI和文件路徑。而是使用bloginfo()引用URI和文件路徑:請參閱從模板引用文件。
請注意,樣式表中使用的URI是相對于樣式表的,而不是引用樣式表的頁面。例如,如果在主題中包含images /目錄,則只需在CSS中指定此相對目錄,如下所示:
h1 {
background-image:url(images / my-background.jpg);
}
插件API掛鉤
在開發(fā)主題時,最好記住應(yīng)該設(shè)置主題,以便它可以與用戶可能決定安裝的任何WordPress插件一起使用。插件通過“Action Hooks”為WordPress添加功能(有關(guān)更多信息,請參閱插件API)。
大多數(shù)Action Hook都在WordPress的核心PHP代碼中,因此您的主題不必具有任何特殊標(biāo)記即可使用。但是,您的主題中需要存在一些Action Hook,以便插件可以直接在頁眉,頁腳,側(cè)邊欄或頁面正文中顯示信息。以下是您需要包含的特殊Action Hook模板標(biāo)簽的列表:
用于主題函數(shù)文件。用于加載外部腳本和樣式表。
在header.php中進(jìn)入主題的<head>元素。示例插件使用:添加JavaScript代碼。
在結(jié)束</ body>標(biāo)記之前進(jìn)入footer.php。示例插件使用:在頁腳底部插入需要在其他所有內(nèi)容后運(yùn)行的PHP代碼。通常用于插入網(wǎng)絡(luò)統(tǒng)計信息代碼,例如Google Analytics。
通常位于主題菜單或側(cè)邊欄的<li> Meta </ li>部分;?sidebar.php模板。示例插件使用:包括旋轉(zhuǎn)廣告或標(biāo)簽云。
在文件的結(jié)束標(biāo)記(</ div>)之前直接進(jìn)入comments.php。示例插件使用:顯示評論預(yù)覽。
對于真實世界的用法示例,您將在默認(rèn)主題模板中找到這些插件掛鉤。
主題定制API
從WordPress 3.4開始,默認(rèn)情況下幾乎所有WordPress主題都提供了一個新的主題自定義功能。主題自定義管理頁面使用add_theme_support()或使用Settings API?自動填充主題聲明支持的選項,并允許管理員查看他們實時更改的非永久預(yù)覽。
有興趣為主題的主題自定義頁面添加新選項的主題和插件開發(fā)人員應(yīng)該看到主題自定義API的文檔。有關(guān)Theme Customization API的其他教程,請訪問Ottopress.com網(wǎng)站。
不受信任的數(shù)據(jù)
您應(yīng)該在主題中轉(zhuǎn)義動態(tài)生成的內(nèi)容,尤其是輸出到HTML屬性的內(nèi)容。如WordPress編碼標(biāo)準(zhǔn)中所述,進(jìn)入屬性的文本應(yīng)該通過esc_attr()運(yùn)行,以便單引號或雙引號不會結(jié)束屬性值并使XHTML無效并導(dǎo)致安全問題。要檢查的常用位置是title,alt和value屬性。
對于需要安全輸出的常見情況,幾乎沒有特殊的模板標(biāo)簽。一個這樣的情況涉及使用_title_attribute()而不是the_title()將標(biāo)題屬性輸出到title屬性以避免安全漏洞。以下是使用可翻譯文本時正確轉(zhuǎn)義帖子標(biāo)題鏈接的title屬性的示例:
<a href="<?php the_permalink();?>“title =”<?php sprintf(__('永久鏈接到%s','主題名'),the_title_attribute('echo = 0')); ?>“> <?php the_title(); ?> </A>
替換為正確的電話已過時逃生電話:()wp_specialchars并用htmlspecialchars()與esc_html()?,)clean_url(與esc_url(),和attribute_escape()與esc_attr()?。有關(guān)更多信息,請參閱Data_Validation。
翻譯支持/ I18n
為確保語言本地化的平滑過渡,請使用基于WordPress gettext的i18n函數(shù)將所有可翻譯文本包裝在模板文件中。這使翻譯文件更容易掛鉤并將標(biāo)簽,標(biāo)題和其他模板文本翻譯成網(wǎng)站的當(dāng)前語言。有關(guān)WordPress開發(fā)人員的更多信息,請參閱WordPress本地化和I18n。
主題類
實現(xiàn)以下模板標(biāo)記以將WordPress生成的類屬性添加到body,post和comment元素。對于帖子類,僅適用于The Loop中的元素。
模板文件清單
在開發(fā)主題時,請根據(jù)以下模板文件標(biāo)準(zhǔn)檢查模板文件。
文件頭(header.php)
- 使用正確的DOCTYPE。
- 開頭的<html>標(biāo)簽應(yīng)該包含language_attributes()。
- 所述的<meta>字符集元素應(yīng)該一切之前被放置,包括<TITLE>元素。
- 使用bloginfo()設(shè)置<meta>字符集和描述元素。
- 使用wp_title()設(shè)置<title>元素。看看為什么。
- 使用自動Feed鏈接添加Feed鏈接。
- 在結(jié)束</ head>標(biāo)記之前添加對wp_head()的調(diào)用。插件使用此操作掛鉤添加自己的腳本,樣式表和其他功能。
- 不要在標(biāo)題模板中鏈接主題樣式表。請改用主題函數(shù)中的wp_enqueue_scripts動作掛鉤。
以下是正確格式化的HTML5兼容頭區(qū)域的示例:
<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<HEAD>
<meta charset =“<?php bloginfo('charset');?>”/>
<title> <?php wp_title(); ?> </ TITLE>
<link rel =“profile”href =“http://gmpg.org/xfn/11”/>
<link rel =“pingback”href =“<?php bloginfo('pingback_url');?>”/>
<?php if(is_singular()&& get_option('thread_comments'))wp_enqueue_script('comment-reply'); ?>
<?php wp_head(); ?>
</ HEAD>
導(dǎo)航菜單(header.php)
- 主題的主導(dǎo)航應(yīng)該支持帶有wp_nav_menu()的自定義菜單。
- 菜單應(yīng)支持長鏈接標(biāo)題和大量列表項。這些項目不應(yīng)破壞設(shè)計或布局。
- 子菜單項應(yīng)正確顯示。如果可能,請支持子菜單項的下拉菜單樣式。下拉菜單允許顯示菜單深度而不是僅顯示頂級。
小部件(sidebar.php)
- 主題應(yīng)該盡可能完整。布局中的任何區(qū)域都像窗口小部件(標(biāo)簽云,blogroll,類別列表)或可以接受窗口小部件(側(cè)邊欄)那樣應(yīng)該允許窗口小部件。
- 默認(rèn)情況下顯示在窗口小部件區(qū)域中的內(nèi)容(例如,硬編碼到側(cè)邊欄中)應(yīng)在從外觀>窗口小部件啟用窗口小部件時消失。
頁腳(footer.php)
- 使用wp_footer()調(diào)用,在關(guān)閉body標(biāo)簽之前出現(xiàn)。
<?php wp_footer(); ?>
</ BODY>
</ HTML>
索引(index.php)
- 以摘錄或完整形式顯示帖子列表。根據(jù)需要選擇其中一個。
- 包括wp_link_pages()以支持帖子中的導(dǎo)航鏈接。
存檔(archive.php)
- 顯示存檔標(biāo)題(標(biāo)記,類別,基于日期或作者存檔)。
- 以摘錄或完整形式顯示帖子列表。根據(jù)需要選擇其中一個。
- 包括wp_link_pages()以支持帖子中的導(dǎo)航鏈接。
頁數(shù)(page.php)
- 顯示頁面標(biāo)題和頁面內(nèi)容。
- 顯示評論列表和評論表單(除非評論已關(guān)閉)。
- 包含wp_link_pages()以支持頁面中的導(dǎo)航鏈接。
- 不應(yīng)顯示標(biāo)簽,類別,日期和作者等元數(shù)據(jù)。
- 顯示具有編輯權(quán)限的登錄用戶的“編輯”鏈接。
單帖(single.php)
- 包含wp_link_pages()以支持帖子中的導(dǎo)航鏈接。
- 顯示帖子標(biāo)題和帖子內(nèi)容。
- 標(biāo)題應(yīng)該是純文本而不是指向自身的鏈接。
- 顯示發(fā)布日期。
- 除非對設(shè)計很重要,否則請遵守日期和時間格式設(shè)置。(日期和時間格式的用戶設(shè)置位于“?管理面板”?>?“設(shè)置”?>“?常規(guī)”中)。
- 對于基于用戶設(shè)置的輸出,請使用the_time(get_option('date_format'))。
- 顯示作者姓名(如果適用)。
- 顯示帖子類別和帖子標(biāo)簽。
- 顯示具有編輯權(quán)限的登錄用戶的“編輯”鏈接。
- 顯示評論列表和評論表。
- 使用previous_post_link()和next_post_link()顯示下一個和上一個帖子的導(dǎo)航鏈接。
評論(comments.php)
- 作者評論應(yīng)以不同方式突出顯示
- 如果合適,顯示gravatars(用戶頭像)。
- 支持線程評論。
- 顯示引用/ pingbacks。
- 除非在function_exist()中檢查以避免重新聲明錯誤,否則此文件不應(yīng)包含函數(shù)定義。理想情況下,所有函數(shù)都應(yīng)該在functions.php中。
搜索結(jié)果(search.php)
- 以摘錄或完整形式顯示帖子列表。根據(jù)需要選擇其中一個。
- 搜索結(jié)果頁面顯示生成結(jié)果的搜索詞。這是一種簡單但有用的方法來提醒某人他們剛搜索的內(nèi)容 - 尤其是在結(jié)果為零的情況下。使用_search_query?()或get_search_query()(分別顯示或返回值)。例如:
<h2> <?php printf(__('搜索結(jié)果:%s'),'<span>'。get_search_query()。'</ span>'); ?> </ H2>
- 在搜索結(jié)果頁面上再次包含搜索表單是一種很好的做法。包含它:get_search_form()。
JavaScript的
- 應(yīng)盡可能將JavaScript代碼放在外部文件中。
- 使用wp_enqueue_script()加載腳本。
- 直接加載到HTML文檔(模板文件)中的JavaScript應(yīng)該進(jìn)行CDATA編碼,以防止舊版瀏覽器出錯。
<script type =“text / javascript”>
/ * <![CDATA [* /
//你的Javascript的內(nèi)容就在這里
/ *]]> * /
</ SCRIPT>
截圖
為您的主題創(chuàng)建屏幕截圖。屏幕截圖應(yīng)該命名為screenshot.png,并且應(yīng)該放在頂級目錄中。屏幕截圖應(yīng)準(zhǔn)確顯示主題設(shè)計并以PNG格式保存。雖然.jpg,.jpeg和.gif也是屏幕截圖的有效擴(kuò)展名和文件格式,但不建議使用它們。
推薦的圖像尺寸為1200px寬,900px高。屏幕截圖通常顯示較小,但超大圖像允許在HiDPI顯示屏上進(jìn)行高分辨率查看。請注意,由于“管理主題”屏幕具有響應(yīng)性,因此屏幕截圖圖像的頂部和底部可能無法查看,因此請將圖形保持在中心附近。
主題選項
主題可以選擇支持主題自定義屏幕。有關(guān)示例代碼,請參閱示例WordPress主題選項頁面。
為用戶角色啟用主題自定義屏幕的可用性時,請使用“edit_theme_options”用戶功能而不是“switch_themes”功能,除非用戶角色實際上也應(yīng)該能夠切換主題。有關(guān)角色和功能以及添加管理菜單的更多信息,請參閱。
如果您在主題中的任何位置使用“edit_themes”功能來獲得主題自定義屏幕(或某些自定義屏幕)的管理員角色訪問權(quán)限,請注意,自3.0版本以來,此功能尚未分配給管理員角色在WordPress多站點(diǎn)安裝的情況下默認(rèn)。請參閱說明。在這種情況下,如果您希望管理員看到“主題選項”菜單,請使用“edit_theme_options”功能。使用WordPress多站點(diǎn)時,請參閱管理員角色的其他功能。
主題測試過程
- 修復(fù)PHP和WordPress錯誤。將以下調(diào)試設(shè)置添加到wp-config.php文件中,以查看已棄用的函數(shù)調(diào)用和其他與WordPress相關(guān)的錯誤:define('WP_DEBUG',true);?。有關(guān)詳細(xì)信息,請參閱不推薦使用的函數(shù)掛鉤。
- 根據(jù)模板文件清單檢查模板文件(參見上文)。
- 使用主題單元測試進(jìn)行貫穿。
- 驗證HTML和CSS。請參閱驗證網(wǎng)站。
- 檢查JavaScript錯誤。
- 在所有目標(biāo)瀏覽器中測試。例如,IE9,Safari,Chrome,Opera,F(xiàn)irefox和Microsoft Edge。
- 清除任何無關(guān)的注釋,調(diào)試設(shè)置或TODO項目。
- 如果您通過將主題提交到主題目錄公開發(fā)布主題,請參閱主題審閱。
資源和參考
代碼標(biāo)準(zhǔn)
主題設(shè)計
CSS
模板
- 踏入模板
- 模板
- 模板層次結(jié)構(gòu)
- 模板標(biāo)簽
- 循環(huán)
- 條件標(biāo)簽
- 功能參考
- I18n for WordPress Developers
- 數(shù)據(jù)驗證
功能列表
測試和質(zhì)量保證
發(fā)布和推廣
外部資源和教程
分類: