跳至內容

說明:模板

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

這是本頁的一個歷史版本,由用户名永远已存在對話 | 貢獻2019年6月7日 (五) 05:04 设定参数:​ 修正笔误)編輯。這可能和目前版本存在着巨大的差異。

模板(英語:Template)是維基百科的系統中的一項功能,類似於電腦語言中的子程序。本文提供在MediaWiki建立模板的技術指南;維基百科使用MediaWiki並對模板有一定的規範。另外也可參考:

什麼是模板,為什麼要用模板

我們經常在條目的上方看到各種各樣的條條框框,比如「本條目需要清理」、「本條目應避免有陳列雜項、瑣碎資料的部分。」等。有時候條目右側也能看到一個灰色的框,裏面寫着有關這個條目的基本資訊,比如一位藝人的「生日」、「出生地」、「國籍」等。條目最下方有時候也會見到一個大方框,裏面陳列着和這個條目相關的內容(稱為「導航模板」,比如這個)。這些都是「模板」。模板的形式還有很多很多,有的是直接鑲嵌在條目正文裏面的,有的雖然看不到但是卻依然影響到條目顯示的內容(比如字詞轉換模板)。但是如果你翻翻這些條目的原始碼,就會發現這些模板都長成類似「{{模板名字|模板參數}}」這樣子,用一對雙大括號將模板的內容擴起來。

為什麼有這些麻煩的東西?有時候,一段內容會在多個條目中反覆出現,這時候如果一遍一遍複製那些內容,一遍遍貼上到各個條目裏面,簡直會累死人,而且大段大段的看起來也很煩人;而且,萬一日後內容有變動,又要進到各個條目裏面把這些內容一個個全改一遍,這會產生大量的重複勞動。模板就在這個時候出現了:只需要給重複的部分放到一個模板里、起個名字,以後需要用到這些內容的時候直接呼叫模板就行了。需要變更內容的時候,也只需要在模板里改動,那些呼叫了模板的條目也會隨着模板自動變更,十分方便。

所有的模板都會放在一個叫「Template」的命名空間,即「模板命名空間」,它們的標題都是「Template:模板名字」、「模板:模板名字」這樣。在寫作條目時,只需要在合適的位置放上「{{模板名字}}」,模板就會在合適的地方顯示出來了。有時候對於同一個模板,我們需要顯示的內容稍有差異,但大體的框架是一致的(比如條目右側的資訊框,我想讓模板在條目A顯示藝人A的個人資訊,在條目B顯示藝人B的個人資訊),這個時候我們就會用到「模板參數」,即「{{模板名字|模板參數}}」的形式,具體的用法請見下文。

需要注意的一點是,維基百科的系統——MediaWiki本身並不會自動為條目掛上模板。因此,當看到條目裏面顯示了「本條目需要補充更多來源」等文字時,一般是其他維基人在覺得條目有問題,然後人工將模板掛上去的。在模板所述問題修正之後,可以自行將模板從原始碼中刪除,系統不會讓這段提示文字自動消失。

呼叫模板

呼叫模板就是把模板內容嵌入到呼叫方頁面。

在Template命名空間里的頁面才是模板,所以模板都由Template:開頭,在中文維基,以模板:開頭同樣有效。呼叫時必須使用模板標籤,即{{Template:模板名}}的形式,「Template:」可以在無歧義的情況下省略。如Template:tc是一個模板,內容為「in」。如果把{{tc}}加入某個頁面,則{{tc}}的內容會在此頁面顯示,即{{tlc|...}}

如果「Template:模板名」不存在,{{模板名}}的作用就與[[Template:模板名]]相同,提供一個連接到不存在頁面的連結:Template:模板名

模板可以被重新導向Template:請求來源被重新導向到Template:Fact,所以{{请求来源}}效果等同於{{fact}}。有時移動模板並建立重新導向後,原呼叫重新導向的頁面可能會出錯,只要過一段時間(幾小時)等伺服器清除快取即可。

設定參數

在模板名後可用管道符(即豎線)追加參數(這種做法稱為傳參)。參數有編號參數和命名參數兩種。在模板的說明文件里一般會列出該模板的所有參數。

例如,{{fact|1=维基百科的编者大部分是男性|time=2024-12-18}}得到「維基百科的編者大部分是男性[來源請求]」。

「維基百科的編者大部分是男性」的參數名為1。「2024-12-18」的參數名為time。參數名為數字就是編號參數,否則就是命名參數

編號參數的參數名(1、2、3、4等)和等號可以省略。上例的效果和{{fact|维基百科的编者大部分是男性|time=2024-12-18}}是一樣的。注意,以省略形式賦值的第一個編號參數的參數名是1,而不是很多程式語言習慣的0。

呼叫 效果
{{catnav|頁面分類|地理|大洲|亞洲|亞洲國家}}
{{catnav|0=頁面分類|1=地理|2=大洲|3=亞洲|4=亞洲國家}}
地理 > 大洲 > 亞洲 > 亞洲國家 > 模板
{{catnav|1=頁面分類|2=地理|3=大洲|4=亞洲|5=亞洲國家}}
{{catnav|5=亞洲國家|4=亞洲|3=大洲|2=地理|1=頁面分類}}
{{catnav|1=頁面分類|2=地理|大洲|4=亞洲|亞洲國家}}

要麼全不省略編號參數參數名,要麼全都省略,否則極易出錯。

可以理解為參數1第一次賦值為「頁面分類」,然後「大洲」作為隱藏的參數1第二次賦值覆蓋了第一次賦值的內容。

如此類推。

在編輯預覽中會警示這種重複賦值問題。

大洲 > 亞洲國家 > 亞洲 > 模板

需要跳脫的參數

  • 如果參數值中含有等號(=),傳參時則必須使用參數名,即使是編號參數也要使用。
  • 如果參數值中含有兩個連續的右大括號(}}),呼叫參數時必須將其放入nowiki標記中,例如<nowiki>}}</nowiki>
  • 如果參數值中含有豎線(|),呼叫參數時必須將其放入nowiki標記中,例如<nowiki>|</nowiki>,或用{{!}}代替[1][2]
  • 參數值中可以包含一對雙方括號(即兩個左方括號,兩個右方括號),用於連結一個條目,或是其他命名空間的頁面,但不能先寫右雙方括號,然後再接左雙方括號。例如Template:數數1中的內容是:
[[一二{{{1}}}六七]]
{{数数1|三]]四[[五}}會造成模板呼叫失敗,顯示為:
{{数数1|三]]四[[五}}
而不是你所期望的
[[一二三]]四[[五六七]]

替換引用

另見分類:應被替換引用的模板

放置修飾詞「subst:」(substitute,替代)位於模板標籤的「{{」之後,模板名之前,即可替換引用。它能在呼叫方頁面儲存時,將所調模板展開,而不是每次顯示頁面的時候讀取有關模板。這樣可以按模板當前的形式編輯條目,並使條目免受模板變化的影響,並減輕伺服器負擔。所以對模板的替換引用不會顯示在頁面歷史和模板的連入頁面中。

例如{{fact/auto}}和{{未簽名}}都是應被替換引用的模板。

嵌入頁面

模板標籤不僅可以呼叫模板,也可以呼叫(嵌入)其他頁面,就是像模板一樣把被調頁面的內容加入到呼叫方頁面。

這樣一來,所有頁面都可以當作是模板。但是,使用在模板命名空間的頁面(即真正的模板)有以下獨特的好處:

  • 所有被頁面使用的模板都在頁面編輯頁顯示出來。
  • 當模板改變時,所有使用模板頁面的伺服器快取(相對於瀏覽器快取)自動被清空;而位於其他命名空間的頁面,伺服器快取往往要手工清空。

而模板命名空間以外的頁面一般在如下情況下被嵌入其他頁面:

  • 引用維基百科命名空間的介面訊息。
  • 將一個長頁面(可以屬於主條目命名空間,假設名字就叫做「長頁面」,例子)拆分為較短頁面時,可以將短頁面命名為「長頁面/第一部分」、「長頁面/第二部分」等,然後使用{{/第一部分}}<br />{{/第二部分}}來拼成長頁面。Wikipedia:互助客棧 (全部)就是一個好例子。

一個模板可以呼叫另一個模板,它也可以呼叫它自己,但自我呼叫只有一層有效。例如:Template:模板1的內容是“一次,{{模板1}}”,在Template:模板1中將顯示:“一次,一次,{{模板1}}”,如果其他條目呼叫該模板,所加入的文字將是

一次,檢測到模板迴圈:Template:模板1

在2010年前,如果把其他模板重新導向至某模板,該模板又引用重新導向,且多次自我呼叫均為不同重新導向,則該模板可以實現多次自我呼叫。MediaWiki後來取消此功能。如{{RR|7}}的結果為RR-檢測到模板迴圈:Template:RR7

模板中變數在呼叫模板的地方被賦值。因此,如果一個模板中含有{{PAGENAME}},該模板被某頁面呼叫,相應的位置顯示的將是呼叫方的名稱,而不是被調模板的名稱。

一個頁面所呼叫的所有模板都在該頁編輯頁面中列出,並提供相應的連結,而且:

  • 一個段落的編輯頁面不會列出任何模板;
  • 編輯舊版本的頁面,這個列表仍然是當前最新的;
  • 可加入模板擴展語法#if, #ifeq, #ifexist, #ifexpr, 或 #switch;
  • 如果不真正提交編輯,僅僅在預覽中使用的模板不被列出。
  • 如果模板名裏面巢狀另一個模板,如{{{{tc}}{{CURRENTDAY}}}},則會得到{{{{tlc|...}}18}};編輯頁面裏會顯示[[Template:{{tlc|...}}18]]。
  • 模板名#後的內容會忽略。

請注意,如果頁面結尾沒有換行,編輯頁面中總是在結尾添加一個換行,但這並不影響模板的某些效果,即這個換行不真正起作用。例如:

{{编号演示}}{{编号演示}}
{{编号演示}}

的結果是:

  1. 北京
  2. 上海
  3. 北京
  4. 上海
  1. 北京
  2. 上海

建立並編輯模板

維基百科現存大量模板供編者使用,如果有現存模板可以完成您的任務,則應該呼叫現有模板,而不是另建新模板。

新建模板後,請在Wikipedia:模板訊息內添加您新建的模板的資訊,並請對模板進行分類。模板分類的方法請參考Category:維基百科模板以及Category talk:維基百科模板中的相關內容。

當您在模板中需要使用圖示時,建議使用維基共享資源水晶風格圖示庫中提供的圖示。

模板頁面會自動呼叫這個模板本身,實際上相當於一次沒有參數賦值的模板呼叫,因此如果參數有預設值,將被顯示。例如:模板Template:數一數的內容是

一二三{{{1|四五六}}}七八九

模板頁面的內容是

一二三四五六七八九

讀取參數

在模板頁面中,用三個大括號可以讀取參數,例如:{{{参数1|参数1的默认值}}}可以讀取參數1,如果在模板呼叫中參數1沒有賦值,則使用參數1的預設值作為參數1的賦值。另見Help:預設參數

注意:參數預設值和參數賦空值是不同的。

例1:含有命名參數的模板

我們可以建立一個名為Template:姓名的模板,內容為:

我是{{{姓}}}{{{名}}}。

如果用{{姓名}}呼叫這個模板,我們會得到:

我是{{{姓}}}{{{名}}}。

如果用{{姓名|姓=张|名=飞}},我們則得到:

我是張飛。

例2:含有編號參數的模板

再來一個例子,說明一個編號參數的定義和呼叫:我們還是先要定義一個帶參數的模板,例如模板Template:數數的內容是

一二三{{{1|四五六}}}七八九

賦值呼叫{{数数|六五四}}的結果是:

一二三六五四七八九

賦空值呼叫{{数数|}}的結果是:

一二三七八九

未賦值呼叫,就會呼叫預設值,{{数数}}的結果是:

一二三四五六七八九

編號參數還是命名參數?

編號參數的優點

  • 呼叫模板時參數名和等號可以省略,從而節約打字時間和儲存空間。參見#設定參數
  • 阿拉伯數字是世界性的,在翻譯的時候省事,也可以被不懂中文的人理解。

命名參數的優點

  • 參數的順序可以變化,模板的參數可以任意添加和修改,而不會對呼叫模板的頁面產生致命影響。
  • 參數的意義容易理解。
  • 當模板具有大量預設參數時,命名參數使語法更為清晰
  • 一些特殊的技巧利用這樣一個特性:在一次模板呼叫中允許對同一個參數多次賦值,這導致最後一次賦值的內容生效;這種做法隱式保證了在本次模板呼叫中該參數至少被賦值一次

未賦值且沒有預設值的參數

例如:模板Template:再數數的內容是

一-{{{1}}}-三-{{{2}}}-五

{{再数数||}}的結果是

一--三--五

{{再数数|二|}}的結果是

一-二-三--五

{{再数数||二}}的結果是

一--三-二-五

{{再数数|二|{{{1}}}}}的結果是

一-二-三{{1}}五

{{再数数|{{{1}}}|四}}的結果是

一{{1}}三-四-五

{{再数数|{{{1}}}|{{{2}}}}}的結果是

一{{1}}三{{2}}五

例4:參數賦值中包含參數

如果一個參數未賦值,則在三個大括號中的參數名在模板呼叫時不起參數的作用。如果要它起作用,一定要賦值。

{{再数数|二}}
{{数数A|四}}的結果是:
一-二-三{{2}}五
{{再数数|二|{{{1}}}}}
呼叫{{数数B|四}}的結果是:
一-二-三-四-五
{{再数数|二|2={{{1}}}}}
呼叫{{数数C|四}}的結果是:
一-二-三-四-五


進一步

{{再数数||四}}這樣的呼叫將空值賦給參數1,而不是沒有賦值,所以結果是

一--三-四-五

如果我們希望參數1不賦值,則應該將參數2用命名參數形式賦值,如

{{再数数|2=四}}

結果則是

一{{1}}三-四-五

如果這樣的參數值被賦給如<font size>這樣的標記,會使編碼錯誤,但這些錯誤會被系統(MediaWiki)忽略,而不產生奇怪的結果。請參看英文的例子:字型大小

參數「02」和參數「2」是不同的,例如模板Template:例5的內容是

{{{1}}}{{{2}}}{{{02}}}

呼叫{{例5|3|4|5|6}}的結果是

34{{{02}}}

注意:維基系統命名空間的參數名是不同的,它們是$1, $2, ...,參見Help:命名空間Special:所有訊息MediaWiki:Blockedtext

參數及模板命名

參數命名可以呼叫其他參數,如Template:XYZ內容為{{{{{{XYZ}}}}}},則呼叫{{XYZ|XYZ=SDF|SDF=789}}會把參數XYZ的值SDF作為參數名,顯示參數SDF的值,即789。MediaWiki會把{{{{{{XYZ}}}}}}解析為{{{ {{{XYZ}}} }}}而不是{{ {{ {{XYZ}} }} }}(結果是{{ {{ {{{{{{XYZ}}}}}} }} }})。這裏空格是敏感的。另外,呼叫其他參數僅可呼叫1層。如Template:XYZ2內容為{{{{{{{{{XYZ}}}}}}}}},則{{XYZ2|XYZ=SDF|SDF=ABC|ABC=789}}結果為789。

又如,Template:1a2b內容為{{{第一個|第一個未定}}}-{{{第二個|第二個未定}}},Template:nanb內容為{{1a2b|{{{1|第一個}}} = {{{1|第一個}}}已定}},則{{nanb}}結果為第一個已定-第二個未定,{{nanb|第一個}}結果為第一個已定-第二個未定,{{nanb|第二個}}結果為第一個未定-第二個已定,{{nanb|第三個}}<結果為第一個未定-第二個未定。

又如,Template:testif內容為{{{test{{{test|}}}|{{{then}}}}}},則{{testif|test=11|test11=233}}結果為233,{{testif|test=11|then=255}}結果為255,{{testif|then=333}}結果為333,{{testif|test=|then=335}}結果為。

另外,如果模板名為參數,如Template:Sample2內容為{{{{{tc}}}}},則呼叫{{Sample2|tc=!}}相當於{{!}},顯示為|。這裏,{{{{{tc}}}}}解析為{{ {{{tc}}} }}而不是{{{ {{tc}} }}}。如果Template:Sample3內容為{{{ {{tc}} }}},{{tc}}內容為in,則{{Sample3|in=11}}顯示為{{{ {{tlc|...}} }}}。

模板呼叫時,模板名可以是解析器函數。如{{{{NAMESPACE}}1}}相當於{{help1}},結果為這是{{Help1}}的內容。。

模板名可以是另一個模板。如Template:tctc內容為{{tc}},{{{{tctc}}}}相當於{{tc}},結果為{{{{tctc}}}}。

可以使用參數選擇模板名。如Template:Hist3內容為{{{{{2}}}x|{{{1}}}}}-{{{{{3}}}x|{{{1}}}}}-{{{{{4}}}x|{{{1}}}}},Template:1x內容為{{{1}}},Template:2x內容為{{{1}}}{{{1}}},Template:3x內容為{{{1}}}{{{1}}},則{{Hist3|4|3|2|1}}結果為444-44-4。又如Template:a2b2c2d內容為{{{{{1}}}|a{{{2}}}b{{{2}}}c{{{2}}}d}},Template:t2內容為start_{{{1}}}_middle_{{{2}}}_end,{{a2b2c2d|t2|V}}相當於{{t2|aVbVcVd}},即start_aVbVcVd_middle_{{{2}}}_end。

模板可以多次巢狀。如{{3x|{{2x|{{3x|{{1x|{{2x|{{tc}}}}}}}}}}}}結果是{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}{{tlc|...}}

跨語言連結

模板可以含有跨語言連結,但結果是所有呼叫模板的條目頁面都含有了該跨語言連結,這通常是非常糟糕的事情。為了僅僅讓模板本身擁有跨語言連結,而不包括使用模板的條目,我們必須使用<noinclude>標識。例如:

<noinclude>
[[en:Template:Europe]]
[[zh:Template:欧洲]]
</noinclude> 

注意:在模板中使用<noinclude>標識時要小心!不要在<noinclude>之前或者</noinclude>之後加空行,否則空行將被當作模板的一部分反映在呼叫模板的條目中。系統會自動忽略</noinclude>之後的單個空行。

例6:使用<noinclude>標識的後果

如果在例1中的模板Template:姓名加入跨語言連結

我是{{{姓}}}{{{名}}}。

<noinclude>
[[en:Template:Name]]
</noinclude>

{{姓名|姓=张|名=飞}}你是谁?呼叫例5中的模板Template:姓名時,結果是:

我是張飛。
你是誰?

如果希望得到的結果是:

我是張飛。你是誰?

Template:姓名加入跨語言連結應該不含有換行:

我是{{{姓}}}{{{名}}}。<noinclude>
[[en:Template:Name]]
</noinclude>

注意:我們推薦您使用後面一種方式使用<noinclude>標識。

如果模板不是在Template命名空間的,請乾脆寫:

我是{{{姓}}}{{{名}}}。<noinclude>
[[en:Template:Name]]

不寫</noinclude>的原因是系統會在非Template的文件末尾加入空行。

模板分類

模板也要進行分類,目的是為了更好的整理模板,以便更好的使用和管理模板。模板的分類同條目的分類相似,可以參閱有關條目分類的幫助檔案,如Help:分類等,不同之處在於對於模板的分類需要使用<noinclude>標識,如果不加<noinclude>標識,則不僅模板被分類,所有使用該模板的條目也被分入同一類。

所有模板的根目錄(即分類)是Category:維基百科模板,所有模板分類名最後一定要含有「模板」二字,以區別於普通條目的分類。

例7:模板分類別方法

將例1中的模板Template:姓名分為Category:人物模板,需要加入:

我是{{{姓}}}{{{名}}}。<noinclude>[[Category:人物模板]]</noinclude>

標識

注意:以下內容只限於模板中使用的情況,在其他命名空間使用的情況請參考相關幫助文擋。

<noinclude>

前面已經提到,<noinclude>標識的作用是將<noinclude></noinclude>之間的文字加入所在的模板頁中,而不加入呼叫模板的條目或模板中,針對模板的說明、分類和跨語言連結都可以置於該標識之間。

例8:針對模板:網球男單世界第一分類:體育模板就可以置於<noinclude></noinclude>之間,而對於呼叫該模板條目的分類:網球運動員可以置於標識之外:

[[Category:网球运动员]]<noinclude>[[Category:体育模板]]</noinclude>

<includeonly>

<includeonly>標識的作用跟<noinclude>標識的作用正好相反,是將<includeonly></includeonly>之間的文字加入所在的模板頁中,而加入呼叫模板的頁面中。

上面的例8中針對呼叫該模板的條目的分類Category:網球運動員實際上應該置於<includeonly></includeonly>之間:

<includeonly>[[Category:网球运动员]]</includeonly>

這樣,在Category:網球運動員分類中就不會出現Template:網球男單世界第一模板了。

另外,<noinclude>和<includeonly>的關系如下:

<noinclude>A</noinclude>B<noinclude>C</noinclude>

等價於

A<includeonly>B</includeonly>C

<onlyinclude>

<onlyinclude>標識不常用,其作用是只有被<onlyinclude></onlyinclude>包含的文字才出現在呼叫模板的頁面中,模板的其他內容不出現在呼叫模板的頁面中。

subst與preload過程中的noinclude、includeonly和IncludeOnly

以下部分行為是錯誤的,是舊版本軟件的缺陷,並將隨MediaWiki 1.17的部署被修正bugzilla:5210)。
解釋與傳遞
模板原始碼 includeonly noinclude IncludeOnly NoInclude include<includeonly></includeonly>only
模板顯示 interpret interpret interpret 同noinclude 解釋內層,傳遞外層
嵌入過程 interpret interpret interpret 解釋內層,傳遞外層
subst過程 interpret 傳遞 interpret 成為includeonly
preload過程 interpret 傳遞 傳遞 成為includeonly
巢狀
模板原始碼 includeonly pair中的includeonly pair noinclude pair中的includeonly pair
模板顯示 錯亂[1]
嵌入過程 /
subst過程 /
preload過程 正常 /

特殊的模板引用

  • 子頁面引用
    • 格式:{{/子页面}}
範例
模板原始碼 includeonly noinclude IncludeOnly NoInclude include<includeonly></includeonly>only
模板顯示 interpret interpret interpret 同noinclude 解釋內層,傳遞外層
嵌入過程 interpret interpret interpret 解釋內層,傳遞外層
subst過程 interpret 傳遞 interpret 成為includeonly
preload過程 interpret 傳遞 傳遞 成為includeonly
巢狀
模板原始碼 includeonly pair中的includeonly pair noinclude pair中的includeonly pair
模板顯示 錯亂[2]
嵌入過程 /
subst過程 /
preload過程 正常 /
    • 引用過程中「子頁面」的意義是引用模板的頁面的子頁面,而非被引用的模板的子頁面。
  • 其它命名空間的模板引用
    • 格式:{{名字空间:子页面}}如{{Template talk:!}}

一般用法

模板的一般用法有:

提及模板

在某些情況下,我們可能需要提及某一個模板(而非呼叫它)。提及模板可用nowiki標籤,但是已經有熱心的用戶建立了專門的模板,用於提及模板。

您所輸入的 您所看到的
請您不要再隨意刪除{{afd}}模板。 請您不要再隨意刪除模板。
請您不要再隨意刪除<nowiki>{{afd}}</nowiki>模板。 請您不要再隨意刪除{{afd}}模板。
請您不要再隨意刪除{{tl|afd}}模板。 請您不要再隨意刪除{{afd}}模板。
歡迎新用戶可以使用{{tls|welcome}}語法,但不要使用{{tl|welcome}}語法。 歡迎新用戶可以使用{{subst:welcome}}語法,但不要使用{{welcome}}語法。
[[:Template:nosign]]的用法如下:
{{tlx|nosign|用户留言时间|用户名}}
Template:nosign的用法如下:
{{nosign|用户留言时间|用户名}}
{{tnull|nosign|用户留言时间|用户名}}用於補簽名。 {{nosign|用户留言时间|用户名}}用於補簽名。

類似語法

{{CURRENTYEAR}}、{{DISPLAYTITLE:}}等等為魔術字。魔術字可以返回關於當前頁面、wiki站點或日期的資訊,也可以設置數據。參見Help:魔術字#變數

呼叫解析器函數的語法是{{#xxx:}}。如{{#ifeq:{{{lang}}}|zh|我使用中文|I<ins> don't</ins> use Chinese}}給出I don't use Chinese。

讀取模板參數是三個大括號,形如{{{1|}}}、{{{date}}}。詳見#讀取參數

常見問題

我可以在多個語言維基百科中使用同一個模板嗎?

不能。如果你要這麼做,只能在各個維基百科中分別建立該模板。

開頭是「Template:」,「template:」,還是「模板:」?

都行。英文不區分大小寫,中文會繁簡自動轉換。一定要用英文半形冒號。

我可以使用參數嗎?

可以。請參閱說明:模板

一個頁面中最多可以使用多少模板?

2MB。參見Wikipedia:模板限制

我已經修改了模板,但為什麼頁面不更新呢?

有很多原因。第一、你可能沒有重新整理頁面。在你的瀏覽器里使用重新整理(Refresh)功能。第二、系統可能存在快取漏洞(bug)。一種解決方法是編輯使用模板的頁面,然後什麼也不修改就儲存,這樣你就強制該頁面進行重新整理了。這一操作不會在歷史中留下記錄。

我可以修改模板的名字嗎?

可以。移動模板跟移動普通頁面一樣。模板也可以重新導向。

我可以在一個模板中使用另一個模板嗎?

可以。當然可以在一個模板的內容中呼叫另一個模板。但如果使用諸如{{一个模板{{另一个模板}}}}這樣的陳述式,假設{{另一个模板}}的內容為「123」,則實際上是{{一个模板123}}。

參考資料

  1. ^ Help:魔术字#.E5.85.B6.E4.BB.96. 2015-08-02. 
  2. ^ MediaWiki更新记录. 2015-08-02. 

參見

中文

英文

Help:F Help