WordPress模板層次14:文章形式
WordPress支援的文章形式
文章形式是文章的一種屬性,可以被主題用來決定文章的顯示方式。其設計目的是要提供一個特殊的方法來根據文章的特點選用顯示“格式”。該方法用於替代以前需要使用分類來達到同樣目的的做法,而且更重要的是,該方法在支援的主題間是通用的。
簡單地說,如果一位部落格作者正在使用一個支援“文章形式”的主題,那麼作者就可以從一個單選列表中選擇文章的形式,以此決定文章的顯示樣式。
WordPress中的文章形式有助於描述文章是什麼,或者使用什麼型別的內容。
支援的形式
目前支援以下文章格式:
- 日誌(aside) – 典型樣式就是沒有標題。類似於 Facebook 或人人網中更新的一條日誌。
- 相簿(gallery) – 影像陳列廳。文章中通常會有“gallery”程式碼和相應的影像附件。
- 連結(link) – 連結到其它網站的連結。主題可能會使用文章中的第一個 <a href=””> 標籤作為文章的外部連結。有可能有的文章至包含一個 URL,那麼這個 URL 將會被使用;同時,文章標題(post_title)將會是附加到它的錨的名稱。
- 影像(image) – 單張影像。文章中的首個 <img /> 標記將會被認為是該圖片。另外,如果文章只包含一個 URL 連結,則被認為是該圖片的 URL 地址,而文章標題(post_title)將會作為圖片的標題屬性。
- 引語(quote) – 引用他人的一段話。通常使用 blockquote 來包裹引用內容。或者,可能直接將引語寫入文章,並將其出處寫在標題欄。
- 狀態(status) – 簡短更新,通常最多 140 個字元。類似於微博 Twitter 狀態訊息。
- 視訊(video) – 單一視訊。文章中第一個 <video /> 或 object 或 embed 將被作為視訊處理。或者,文章可以僅包含視訊的 URL,甚至一些主題和外掛可以支援自動嵌入您的文章附件中的視訊。
- 音訊(audio) – 一個音訊檔案。可以用於播客(podcasting)等。
- 聊天(chat) – 聊天記錄,類似於:
文章形式的工作原理
現在我們來看使用這些形式的常見做法,以便大家可以看到它們的工作原理。
為了講解的方便,我們將進入 Twenty_Fifteen 主題:
You must be logged in to view the hidden contents.
來看一下 single.php 文章模板:
<?php
/**
* The template for displaying all single posts and attachments
*
* @package WordPress
* @subpackage Twenty_Fifteen/***這是Twenty_Fifteen主題的single.php模板***/
* @since Twenty Fifteen 1.0
*/
get_header(); ?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
// Start the loop.
while ( have_posts() ) : the_post();
/*
* Include the post format-specific template for the content. If you want to
* use this in a child theme, then include a file called called content-___.php
* (where ___ is the post format) and that will be used instead.
*/
get_template_part( 'content', get_post_format() );/***get_post_format()會返回文章格式資訊,從而呼叫不同的檔案來實現文章模板***/
注意:get_template_part(’content’,get_post_format())。
get_post_format()會返回文章格式資訊,從而呼叫不同的檔案來實現文章模板。
比如說,如果你為一篇文章選擇的形式是:狀態(status),那麼get_post_format()這個函式返回的值就是’status’。所以,get_template_part()就會去查詢名為content-dtatus.php的檔案。
所以,來到主題目錄中,在這裡,我們有 content-link.php/content-none.php/content-page.php/content-search.php ,所以,如果沒有找到 status ,就預設使用 content-none.php :
那麼,如果文章的形式是連結(link),那麼這篇文章將呼叫 content-link.php 模板。
所以,它的原理和模板層次結構的原理不同,實際上它是根據 get_post_format() 返回的文章格式資訊,然後動態地選擇正確的模板。
你可以檢視任何預設的 WordPress 主題,這種做法也比較通用,重要的是你瞭解文章形式的工作原理。
如何指定主題支援的文章形式
還需要注意的是:如何指定文章形式?
來到 Twenty_Fifteen 主題下的 functions.php:
/*
* Enable support for Post Formats.
*
* See: https://codex.wordpress.org/Post_Formats
*/
add_theme_support( 'post-formats', array(
'aside', 'image', 'video', 'quote', 'link', 'gallery', 'status', 'audio', 'chat'
) );/***指定你想支援的文章形式***/
如果你打算構建一個自定義的主題,必須具體指定你想支援的文章格式。並指定要使用哪種型別的文章格式。
在 Twenty_Fifteen 主題中,支援幾乎所有的文章形式。
這些文章形式反映到WordPress網站的後臺就是:
所以,如果你在functions.php中刪除或新增格式,那麼這些修改將在編寫文章時,顯示出來。
總的來說,關於文章形式的選擇,它的原理不同於模板層次結構,它是一個命名約定,通過條件語句,來判斷使用哪個模板進行顯示。
相關文章
- WordPress模板層次02:模板層次結構和原理
- WordPress模板層次15:歸檔模板
- WordPress模板層次01:模板檔案
- WordPress模板層次10:主頁模板
- WordPress模板層次11:定製頁面模板
- WordPress模板層次09:sidebar.phpIDEPHP
- WordPress模板層次13:comments.phpPHP
- WordPress模板層次08:footer.phpPHP
- WordPress模板層次17:404.phpPHP
- WordPress模板層次07:header.phpHeaderPHP
- WordPress模板層次06:index.phpIndexPHP
- WordPress模板層次12:single.phpPHP
- WordPress模板層次16:搜尋模板search.phpPHP
- WordPress模板層次03:模板檔案中常見程式碼
- WordPress模板層次05:style.css樣式表CSS
- WordPress模板層次04:建立一個示例主題網站網站
- WordPress入門06-WordPress釋出新文章和管理文章
- WordPress自動採集釋出文章03-如何批量把文章上傳到wordpress
- Django 模板層Django
- Django模板層Django
- WordPress輕擬物NiRvana模板原始碼原始碼
- WordPress入門05-WordPress建立和管理文章分類目錄
- django的模板層Django
- wordpress 文章的釋出和修改時定製文章標題
- WordPress電影主題Zmovie模板原始碼原始碼
- WordPress開發入門05:模板標籤
- SOLIDWORKS二次開發形式Solid
- 易優CMS模板標籤if條件判斷多層次判斷
- WordPress柒比貳B2模板原始碼原始碼
- WordPress自動採集釋出文章04-如何批量定時釋出文章
- django-模板層基礎2Django
- 商業智慧的三個層次,你在哪個層次?
- 一文說透WordPress的自定義文章型別型別
- WordPress 文章末尾自動新增版權申明及原文地址
- WordPress 多表情文章投票/心情評價外掛 DW ReactionsReact
- C#設計模式(14)——模板方法模式C#設計模式
- PbootCMS模板內頁如何呼叫相關文章boot
- 層次分析法