如果你對自己製作佈景主題,或是修改佈景主題有濃烈興趣的話,那麼一定要知道所謂的Template tag (也就是我俗稱的模板標籤) 是甚麼東西!!
什麼是模板標籤
舉個例子來說,我們可以開啟佈景主題檔案:header.php,會發現 <title><?php bloginfo('name'); ?></title> 這段程式碼,以標準的HTML而言, <title>網站標題</title> 標籤裡頭要放的是該網站的標題,但 header.php 並非放標題,而是放上一段由箭頭、括號、關鍵詞組成的php程式碼,而這個 <?php bloginfo('name'); ?> 就是我們所說的模板標籤。
模板標籤是用來指示 WordPress 該給我們什麼、或是該秀出什麼的資訊。假使我們想要在網頁上秀出標題,就在header.php裡寫入 <?php bloginfo('name'); ?> ,WordPress就會依據這個模板標籤,去尋找它對應的功能然後呈現給我們。
也許你會覺得很麻煩,又或者會想:「難道不能直接打上我自己的標題就好了嗎?」這當然是可以的,但是如果你有10個檔案都有標題,是不是要修改10個檔案呢。而且製作佈景主題的作者怎麼會知道你的標題是什麼?所以都是會使用模板標籤的功能。
而像 bloginfo() 這類的標籤,都會從你的後台「設定」→「一般設定」的地方得到相對應的訊息。在上述的例子裡頭,由「'」所包覆的「name」就是用來標記「部落格的標題」,我們稱之為參數。而bloginfo() 不止 name 一個參數而已,它還有很多不同的參數設定,每一種參數都代表一種功能,有興趣的話,這部分會在之後跟大家介紹~。
如何使用模板標籤
佈景主題會有很多模板標籤的運用,其實模板標籤不難理解,因為它很簡單且直覺化,像是 bloginfo(),從字面上的意思,就能清楚知道它是在說明網誌的資訊。那像是 the_title() 又是代表什麼意思呢?沒錯,就是部落格文章的標題。
雖然模板標籤很容易上手,但是因為它可搭配參數、css做設定,所以在使用上會比較複雜。有的使用者常常會不小心漏寫某些符號導致程式出問題,這是需要注意的部份。
![]()
接著跟大家介紹WordPress三種類型的模板標籤。
WordPress 模板標籤三大類‧模板標籤不帶參數
‧模板標籤帶格式化的php函式的參數
‧模板標籤帶查詢字串式的參數
模板標籤不帶參數
有的模板標籤沒有任何的選項,所以也沒辦法傳遞參數給它們。像是 the_author_firstname() ,它顯示的是該作者的第一個姓名,例如你的名字是Muki Wu,使用這個模板標籤它就會顯示 Muki 。
另外要注意的是,所有的模板標籤都可以不用帶參數,如果不帶參數預設就是系統的默認值。但是有的模板標籤是根本沒有參數讓你使用。這兩者有所不同。
模板標籤帶格式化的php函式的參數
如果要在模板標籤使用參數,參數必須放在 (' ') 裡頭。
以前面提到的 <?php bloginfo(); ?> 為例,如果你要顯示網誌的名稱,必須要帶入 name 參數:<?php bloginfo('name'); ?>; 要顯示網誌的敘述,就帶入 description 參數:<?php bloginfo(‘description’); ?> 。
但,一個模板標籤內的參數可能不止一個,例如 get_archives() 就有6個參數: <?php get_archives ( 'type' , 'limit' , 'format' , 'before' , 'after' , show_post_count ); ?> 。 get_archives() 是用來顯示網誌文章的模板標籤,裡頭的 type 、 limit …等等都是php函式的一部份,所以我們不能直接將這段語法貼到佈景主題的檔案裡,一定要先把裡頭的參數設定好才行。
這6個參數可以全部都設定,也可以挑選你想要的參數作設定,假設你選擇第一、三、五參數作設定,其它沒設定的參數也不能省略,一定要記得保留 (' ') ,就像是變成:<?php get_archives (‘monthly’, ' ' , 'option' , ‘ ' , '<br />', false ); ?>,空值的參數系統會帶上預設值。
小技巧之 布林值運用如果參數值的形態是布林,就不用加上
' ',直接填寫TRUE(真)或是FALSE(假)即可。
那麼,要如何知道 get_archives 裡頭的參數該填寫什麼呢?以下就來看看它的詳細參數。
get_archives參數設定
‧ type:(字串格式)在這邊可以選擇你的文章要以何種類型出現,預設是以月份區分。可用的數值有:
type數值一覽‧ 'monthly' - 月份。
‧ 'daily' - 日期。
‧ 'weekly' - 星期。
‧ 'postbypost' - 照發文排序。
‧ limit:(整數格式)用來限定最多顯示幾篇文章。用 ' ' 表示不限定。
‧ format:(字串格式)設定archive的清單格式。可用的數值有:
format數值一覽‧ 'html' – 用html的<li>標籤。是系統預設值。
‧ 'option' – 用下拉式選單的<option>標籤。
‧ 'link' – 用<link>標籤。
‧ 'custom' – 使用者自訂清單。
‧ before:(字串格式)顯示在get_archive前面要放置的訊息,當format設定為’custom’或’html’才有用。預設是’ ‘(空值)。
‧ after:(字串格式) 顯示在get_archive後面要放置的訊息,當format設定為’custom’或’html’才有用。預設是’ ‘(空值)。
‧ show_post_count:(布林格式)顯示是否要在文章後面秀出篇數,當type設定為’monthly’才有用。可用數值如下:
show_post_count數值一覽‧ TRUE – 要顯示。
‧ FALSE – 不要顯示,此為預設值。
![]()
模板標籤帶查詢字串式的參數
這一類的模板標籤,利用了查詢字串的樣式,向標籤傳遞參數。簡單來說,它提供我們一種便利的 包裝函式,把許多的布林參數換成較少的字串參數。例如模板標籤 wp_list_cats() 就是 list_cats() 的包裝函式。
假設現在我們要使用 list_cats() 作設定,因為 list_cats() 的參數列表就高達17個參數,所以我們要這麼寫:
list_cats()參數設定<?php list_cats(TRUE, 'All', 'ID', 'asc', '', TRUE, FALSE, FALSE, TRUE, TRUE, FALSE, '', '', FALSE, '', '', '10,11,12'); ?>
寫了那麼多設定,會不會覺得非~常的痛苦呢!!? 接下來我們來看看,如果換成 wp_list_cats() 的寫法,就變成:
<?php wp_list_cats('exclude=10,11,12'); ?>
用這種查詢字串的寫法,會比預設來得容易且便利,它可以讓你修改參數的值,但是不用寫出所有的參數。
不過很可惜的是,並不是所有php函式的模板標籤都可以這麼做,因為它們不一定有同樣的查詢字串式。
一般如果有查詢字串式的參數,通常模板標籤的開頭會是 wp_ ,就像是 wp_list_cats() ,但如果要實際運用,仍然要參考相關標籤的文件,了解它們的參數運用。
![]()
以上就是WordPress Template tag 的基本介紹,關於某些名詞解說,以及對於 Template tag 的分類,都是由Muki我自己學習WordPress摸索而來的,所以如果跟官方文件有牴觸,當然還是以官方文件為主。如果有寫錯的地方,也歡迎大家更正指教,謝謝。
过来学习!