主題使用“文章形式(Post Formats)”以某種形式和樣式顯示文章。“文章形式”功能提供了可用于支持該功能的所有主題的形式的標(biāo)準(zhǔn)化列表。主題可能不支持列表中的所有形式;在這種情況下,這是使用戶(hù)知道的好形式。
主題即使通過(guò)插件也不能引入不在標(biāo)準(zhǔn)列表中的文章形式。這種標(biāo)準(zhǔn)化可確保主題之間的兼容性以及外部工具以一致的方式使用功能的方式。
簡(jiǎn)而言之,博主可以使用支持文章形式的主題,通過(guò)選擇文章形式來(lái)更改文章的外觀(guān)。
過(guò)去以Asides為例,創(chuàng)建了一個(gè)名為Asides的類(lèi)別,并為其分配了文章,然后根據(jù)來(lái)自post_class()或 in_category('asides') 樣式規(guī)則顯示不同的內(nèi)容。
使用文章形式時(shí),新方法允許主題添加對(duì)文章形式的支持(例如 add_theme_support('post-formats', array('aside'))),然后可以在文章元數(shù)據(jù)框中選擇文章形式來(lái)保存文章。可以使用函數(shù) ?get_post_format($post->ID)? 來(lái)確定格式,并且post_class()還將創(chuàng)建用于純CSS樣式的“format-asides”類(lèi)。
支持的文章形式
如果主題支持,則可以使用以下文章形式。
請(qǐng)注意,雖然實(shí)際的文章內(nèi)容不會(huì)改變,但主題可以根據(jù)所選文章形式不同地顯示文章。文章的顯示方式完全取決于主題,但是以下是有關(guān)不同文章形式的典型用法的一些一般準(zhǔn)則。
- aside?-通常樣式不帶標(biāo)題。類(lèi)似于Facebook筆記更新。
- gallery-圖片庫(kù)。文章可能包含畫(huà)廊簡(jiǎn)碼,并帶有圖像附件。
- link??–指向另一個(gè)站點(diǎn)的鏈接。主題可能希望使用文章內(nèi)容中的第一個(gè)
<a href="">標(biāo)簽作為該文章的外部鏈接。一種替代方法是,如果文章僅由網(wǎng)址組成,則將使用這個(gè)網(wǎng)址,而標(biāo)題(post_title)將是附加到其錨點(diǎn)的名稱(chēng)。 - image?–單個(gè)圖像。文章中的第一個(gè)
<img />標(biāo)簽可以視為圖片。或者,如果文章僅由網(wǎng)址組成,則它將是圖像網(wǎng)址,而文章的標(biāo)題(post_title)將是圖像的title屬性。 - quote?–引用。可能將包含一個(gè)引用內(nèi)容的blockquote。或者,引用可以只是內(nèi)容,而源/作者是標(biāo)題。
- status?–簡(jiǎn)短的狀態(tài)更新,類(lèi)似于Twitter狀態(tài)更新。
- video?–單個(gè)視頻。文章內(nèi)容中的第一個(gè)
<video />標(biāo)簽或?qū)ο?嵌入對(duì)象可以視為視頻。或者,如果文章僅由網(wǎng)址組成,則將是視頻網(wǎng)址。如果在博客上啟用了視頻支持(例如通過(guò)插件),則還可能包含視頻作為文章的附件。 - audio?–音頻文件。可以用于播客。
- chat?–聊天記錄,如下所示:
John: fooMary: barJohn: foo 2
編寫(xiě)或編輯文章時(shí),“標(biāo)準(zhǔn)”表示未指定文章形式。另外,如果指定了無(wú)效的文章形式,則默認(rèn)情況下將應(yīng)用“標(biāo)準(zhǔn)”(無(wú)格式)。
參考函數(shù)
主要函數(shù)
其他函數(shù)
添加主題支持
主題需要在functions.php文件中使用add_theme_support(),通過(guò)傳遞如下形式數(shù)組來(lái)告訴WordPress該主題支持哪些文章形式:
function themename_post_formats_setup() {
add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );
}
add_action( 'after_setup_theme', 'themename_post_formats_setup' );
使用after_setup_theme掛鉤,以便在加載主題之后注冊(cè)文章形式支持。
添加文章類(lèi)型支持
文章類(lèi)型需要在functions.php文件中使用add_post_type_support()來(lái)告訴WordPress支持哪些文章形式:
function themename_custom_post_formats_setup() {
// 添加文章形式支持到文章類(lèi)型 'page'
add_post_type_support( 'page', 'post-formats' );
// 添加文章形式支持到自定義文章類(lèi)型 'my_custom_post_type'
add_post_type_support( 'my_custom_post_type', 'post-formats' );
}
add_action( 'init', 'themename_custom_post_formats_setup' );
應(yīng)該將add_post_type_support掛載到init鉤子上,因?yàn)樽远x帖子類(lèi)型可能尚未在after_setup_theme中注冊(cè)。
使用文章形式
在主題中,使用get_post_format()檢查文章形式,并相應(yīng)地更改其顯示方式。請(qǐng)注意,采用默認(rèn)形式的文章將返回false值。或者,使用has_post_format()條件標(biāo)簽:
if ( has_post_format( 'video' )) {
echo 'this is the video format';
}
建議的樣式
另一種格式化方法是通過(guò)樣式規(guī)則。主題應(yīng)該在文章周?chē)陌b器代碼中使用post_class()函數(shù)來(lái)添加動(dòng)態(tài)樣式類(lèi)。文章形式將會(huì)使用“ format-foo”名稱(chēng)類(lèi)似的方式添加額外的類(lèi)。
例如,可以通過(guò)將其放在主題的樣式表中來(lái)隱藏狀態(tài)形式的文章中的標(biāo)題:
.format-status .post-title {
display:none;
}
根據(jù)現(xiàn)代用法,每種形式都適合某種類(lèi)型的“樣式”。應(yīng)用樣式時(shí),請(qǐng)牢記每種文章形式的預(yù)期用法。
例如,aside,鏈接( link )和狀態(tài)( status )形式為簡(jiǎn)單、簡(jiǎn)短的形式。這些通常不會(huì)顯示標(biāo)題或作者信息。旁邊可能包含一個(gè)或兩個(gè)段落,而鏈接只是其中包含URL鏈接的句子。鏈接和旁鏈接都可能具有指向單個(gè)文章頁(yè)面的鏈接(使用the_permalink()),因此將允許發(fā)表評(píng)論,但是狀態(tài)( status )形式很可能不會(huì)具有此類(lèi)鏈接。
另一方面,圖片形式通常只包含一個(gè)圖片,帶有或不帶有標(biāo)題/文字。音頻/視頻文章將是相同的,但是添加了音頻/視頻。這三個(gè)選項(xiàng)中的任何一個(gè)都可以使用插件或標(biāo)準(zhǔn)的嵌入來(lái)顯示其內(nèi)容。標(biāo)題和作者身份也可能不會(huì)顯示,因?yàn)閮?nèi)容可能是不言自明的。
引用形式特別適合于發(fā)布沒(méi)有任何額外信息的簡(jiǎn)單引用。如果僅將引號(hào)放在文章內(nèi)容中,并將引用的人的名字放在文章標(biāo)題中,則可以對(duì)文章進(jìn)行樣式設(shè)置,以顯示the_content()本身,但可以重新設(shè)置為blockquote格式,然后使用the_title()以顯示引用人的姓名作為副標(biāo)題。
在許多情況下,特別是聊天可能趨向于等距顯示。通過(guò)在.format-chat上進(jìn)行一些樣式設(shè)置,您可以使它使用等距字體顯示文章的內(nèi)容,也許在灰色背景div或類(lèi)似的文本內(nèi)部,從而在聊天過(guò)程中將其視覺(jué)上區(qū)分開(kāi)。
子主題中的文章形式
子主題繼承父主題定義的文章形式。為子主題中的文章形式調(diào)用add_theme_support()的優(yōu)先級(jí)必須高于父主題的優(yōu)先級(jí),并且優(yōu)先于現(xiàn)有列表,而不是添加到現(xiàn)有列表中。
調(diào)用 remove_theme_support('post-formats') 會(huì)將其全部刪除。



