在?3.1 版本中引入的文章形式,是文章的一種屬性,可以被主題用來(lái)決定文章的顯示方式。其設(shè)計(jì)目的是要提供一個(gè)特殊的方法來(lái)根據(jù)文章的特點(diǎn)選用顯示“格式”。該方法用于替代以前需要使用分類來(lái)達(dá)到同樣目的的做法,而且更重要的是,該方法在支持的主題間是通用的。
- 官方文檔:WordPress
簡(jiǎn)單地說(shuō),如果一位博客作者正在使用一個(gè)支持“文章形式”的主題,那么作者就可以從一個(gè)單選列表中選擇文章的形式,以此決定文章的顯示樣式。
以前是通過(guò)不同的文章分類,來(lái)使用不同的頁(yè)面模板,現(xiàn)在有了“文章形式”,在發(fā)表文章時(shí),可以選擇文章發(fā)表的文章形式,用于區(qū)分其他文章的形式,從而提高文章關(guān)注度。


有了文章形式,就為主題設(shè)定文章格式提供了一種的新方法(例如,add_theme_support(‘post-formats’, array(‘a(chǎn)side’))),然后就可以在保存文章的時(shí)候在發(fā)布信息框里選擇對(duì)應(yīng)的文章格式。通過(guò)調(diào)用功能函數(shù)get_post_format( $post->ID )就能確定文章所屬格式,而post_class()將會(huì)創(chuàng)建“format-asides”類,以用于純 CSS 樣式編輯。
使用方法
- 參考鏈接:詳情
在主題的 functions.php 中添加下列代碼,以添加形式;
add_theme_support( 'post-formats', array( 'aside', 'chat','gallery','image','link', 'quote', 'status', 'video', 'audio' ) );
在你的文章循環(huán)的位置,添加下列判斷
<?php if( has_post_format( 'status' )) { //狀態(tài) ?>
狀態(tài)樣式
<?php } else if ( has_post_format( 'aside' )) { //日志 ?>
日志樣式
<?php } else if ( has_post_format( 'gallery' )) { //相冊(cè) ?>
相冊(cè)樣式
<?php } else if ( has_post_format( 'video' )) { //視頻 ?>
視頻樣式
<?php } else if ( has_post_format( 'audio' )) { //音樂(lè) ?>
音樂(lè)樣式
<?php } else{ //標(biāo)準(zhǔn) ?>
常規(guī)樣式
<?php } ?>
在你啟用文章的形式后,會(huì)在這里進(jìn)行一個(gè)文章形式的判斷,你可以通過(guò)
<?php get_template_part( 'template-parts/content-main', get_post_type() );?>
來(lái)調(diào)用對(duì)應(yīng)的模板文件,模板文件的調(diào)用順序可參考
例子
上面講解了什么是文章形式、如何添加文章形和如何判斷文章形式,下面就來(lái)了解下如何實(shí)現(xiàn)不同文章形式使用不同模板。
在判斷內(nèi)添加文章循環(huán)的方法:
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', get_post_format() ); ?>
<?php endwhile; ?>
第一:舉例,我們先添加視頻音頻文章形式,首先在functions.php添加下面代碼
add_theme_support( 'post-formats', array( 'video','audio', ) );
第二:在index.php(或者需要用到文章形式的文件)中找到文章循環(huán)代碼:
<?php while ( have_posts() ) : the_post(); ?>
內(nèi)容
<?php endwhile; ?>
替換成下面代碼
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', get_post_format() ); ?>
<?php endwhile; ?>
第三:在主題目錄創(chuàng)建
- content.php(默認(rèn)文章形式)
- content-audio.php(音頻形式)
- content-video.php(視頻形式)
如果添加了別的文章形式 就要?jiǎng)?chuàng)建 content-xxx(形式名稱).php
支持的形式
目前支持以下文章格式:
- 日志(aside)?– 典型樣式就是沒(méi)有標(biāo)題。類似于 Facebook 或人人網(wǎng)中更新的一條日志。
- 相冊(cè)(gallery)?– 圖像陳列廳。文章中通常會(huì)有“gallery”代碼和相應(yīng)的圖像附件。
- 鏈接(link)?– 鏈接到其它網(wǎng)站的鏈接。主題可能會(huì)使用文章中的第一個(gè) <a href=””> 標(biāo)簽作為文章的外部鏈接。有可能有的文章至包含一個(gè) URL,那么這個(gè) URL 將會(huì)被使用;同時(shí),文章標(biāo)題(post_title)將會(huì)是附加到它的錨的名稱。
- 圖像(image)?– 單張圖像。文章中的首個(gè) <img /> 標(biāo)記將會(huì)被認(rèn)為是該圖片。另外,如果文章只包含一個(gè) URL 鏈接,則被認(rèn)為是該圖片的 URL 地址,而文章標(biāo)題(post_title)將會(huì)作為圖片的標(biāo)題屬性。
- 引語(yǔ)(quote)?– 引用他人的一段話。通常使用 blockquote 來(lái)包裹引用內(nèi)容。或者,可能直接將引語(yǔ)寫入文章,并將其出處寫在標(biāo)題欄。
- 狀態(tài)(status)?– 簡(jiǎn)短更新,通常最多 140 個(gè)字符。類似于微博 Twitter 狀態(tài)消息。
- 視頻(video)?– 單一視頻。文章中第一個(gè) <video /> 或 object 或 embed 將被作為視頻處理。或者,文章可以僅包含視頻的 URL,甚至一些主題和插件可以支持自動(dòng)嵌入您的文章附件中的視頻。
- 音頻(audio)?– 一個(gè)音頻文件。可以用于播客(podcasting)等。
- 聊天(chat)?– 聊天記錄,類似于:
張三: foo 李四: bar 張三: foo 2
注意:當(dāng)編輯文章時(shí),若沒(méi)有指定文章樣式,則默認(rèn)使用“標(biāo)準(zhǔn)”。同樣,若指定了一個(gè)無(wú)效的文章形式,那么也將默認(rèn)使用標(biāo)準(zhǔn)樣式。
參考函數(shù)
主題和插件可以使用函數(shù)?set_post_format()?來(lái)設(shè)置形式,使用?get_post_format()?來(lái)查詢形式,使用?has_post_format()?來(lái)檢查是否已經(jīng)設(shè)置了某個(gè)形式。
添加主題支持
主題必須使用?add_theme_support()?函數(shù),通過(guò)傳遞一個(gè)數(shù)組來(lái)告訴 WordPress 使用何種文章形式,例如:
add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );
然后在主題中使用?get_post_format()?函數(shù)以檢查文章格式,并據(jù)此來(lái)修改格式。要注意的是使用默認(rèn)格式的文章時(shí),該函數(shù)返回值為FALSE。或者使用?條件判斷標(biāo)簽函數(shù)?has_post_format():
if ( has_post_format( 'video' )) {
echo 'this is the video format';
}
理解
怎么說(shuō)呢,這個(gè)功能就是定義某一篇文章在列表中展現(xiàn)的形式,樣式可以自己隨便的DIY,以后發(fā)表文章時(shí),可以選擇發(fā)表的形式,可以只寫一句話像微博一樣,可以單獨(dú)分享一個(gè)圖片、視頻或者音樂(lè),而且因?yàn)檎宫F(xiàn)形式區(qū)別于其他文章的形式,往往關(guān)注量也會(huì)高些。
注意:當(dāng)編輯文章時(shí),若沒(méi)有指定文章樣式,則默認(rèn)使用“標(biāo)準(zhǔn)”。同樣,若指定了一個(gè)無(wú)效的文章形式,那么也將默認(rèn)使用標(biāo)準(zhǔn)樣式。

