說明:模板

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

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

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

為什麼會有這些模板?有時候,一段內容會在多個條目中反覆出現,這時候如果一遍一遍複製那些內容,一遍遍粘貼到各個條目裡面可能不太方便,而且大段大段的對閱讀也有影響;而且,萬一日後內容有變動,又要進到各個條目裡面把這些內容一個個全改一遍,這會產生大量的重複勞動。模板就是為了這樣的目的:只需要給重複的部分放到一個模板裡、起個名字,以後需要用到這些內容的時候直接調用模板就行了。需要更改內容的時候,也只需要在模板里改動,那些調用了模板的條目也會隨着模板自動變更,增加了工作效率。

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

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

調用模板

調用模板就是把模板內容嵌入到調用方頁面。

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

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

模板可以被重定向。例如Template:請求來源被重定向到Template:Citation needed,所以{{请求来源}}效果等同於{{Citation needed}}。有時移動模板並建立重定向後,原調用重定向的頁面可能會出錯,只要過一段時間(幾小時)等服務器刷新緩存即可。

設定參數

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

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

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

編號參數的參數名(1、2、3、4等)和等號可以省略。上例的效果和{{fact|维基百科的编者大部分是男性|time=2024-12-28}}是一樣的。注意,以省略形式賦值的第一個編號參數的參數名是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第二次賦值覆蓋了第一次賦值的內容。

如此類推。

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

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

需要轉義的參數

  • 如果參數值中含有等號(=),傳參時則必須使用參數名,即使是編號參數也要使用。也可以使用{{=}}代替[1]
  • 如果參數值中含有兩個連續的右大括號(}}),調用參數時必須將其放入nowiki標記中,例如<nowiki>}}</nowiki>
  • 如果參數值中含有豎線(|),調用參數時必須將其放入nowiki標記中,例如<nowiki>|</nowiki>,或用{{!}}代替[1][2]
  • 參數值中可以包含一對雙方括號(即兩個左方括號,兩個右方括號),用於鏈接一個條目,或是其他命名空間的頁面,但不能先寫右雙方括號,然後再接左雙方括號。例如Template:數數1中的內容是:
[[一二{{{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|...}}28}};編輯頁面裡會顯示[[Template:{{tlc|...}}28]]。
  • 模板名#後的內容會忽略。

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

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

的結果是:

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

創建並編輯模板

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

您在新建模板前,請先搜索相應的模板名稱,如「Template:維基百科模板」。新建模板後,請在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|四}}的結果是:
一-二-三-四-五


例5:參數迭代

當模板需要隔層叫用時(例如有一個父模板,然後建立許多子模板,子模板使用父模板的功能)要讓底層(A模板叫用B模板,B模板為A模板的底層)層使用上層參數時,則需要參數迭代。

最簡單的參數迭代辦法就是在模板中用同樣的參數名。

例如:Template:姓名國籍

{{姓名|姓={{{姓}}}|名={{{名}}}}}{{{国籍}}}人。
我現在叫用「{{姓名国籍|姓=王|名=小奇|国籍=火星}}
結果為「我是王小奇。火星人。」

您可能會認為,Template:姓名模板也有包含{{{姓}}}{{{名}}}參數。

因此我們可以試著將Template:姓名國籍改成

{{姓名}}{{{国籍}}}人。
此時叫用「{{姓名国籍|姓=王|名=小奇|国籍=火星}}
結果為「我是{{{姓}}}{{{名}}}。火星人。」

這是因為在Template:姓名模板中,無法讀取到Template:姓名國籍中傳遞的「|姓=王|名=小奇|国籍=火星」參數

由於每一層模板呼叫參數都互不相關,因此要讓參數能一層一層傳遞下去,則每層都需要迭代一次參數。

進一步

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

一--三-四-五

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

{{再数数|2=四}}

結果則是

一{{1}}三-四-五

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

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

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

調用{{例5|3|4|5|6}}的結果是

34{{{02}}}

注意:維基系統命名空間的參數名是不同的,它們是$1, $2, ...,參見WP:命名空間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}}}{{{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|...}}

模板分類

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

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

例7:模板分類方法

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

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

標識

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

<noinclude>、<includeonly>和<onlyinclude>

<noinclude>標識的作用是將<noinclude></noinclude>之間的文本加入所在的模板頁中,而不加入調用模板的條目或模板中,針對模板的說明、分類都可以置於該標識之間。

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

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

原始碼 原始頁面看到的 其他頁面看到的
<noinclude> text1 </noinclude> text2 text1 text2 text2
<onlyinclude> text1 </onlyinclude> text2 text1 text2 text1
<includeonly> text1 </includeonly> text2 text2 text1 text2

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過程 正常 /

Nowiki

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

對於一些模板,我們不希望模板參數的Wikitext語法被識別。比如:我們希望傳入文檔的參數以其原本的狀態居中顯示。

如果我們寫Template:居中Nowiki,內容為:

<div style="text-align:center"><nowiki>{{{1}}}</nowiki></div>

那麼用{{居中Nowiki|'''居中的内容'''}}調用此模板返回的結果會是:

{{{1}}}

因為<nowiki>...</nowiki>會在模板的源代碼頁面就發揮作用,所以<nowiki>{{{1}}}</nowiki>在模板中並非代表傳入的參數,而代表的是「{{{1}}}」這串字符本身。因此,此時需要用到另一個方式來達成此目的。我們寫Template:居中Nowiki1,內容為:

<div style="text-align:center">{{#tag:nowiki | {{{1}}}}}</div>

那麼用{{居中Nowiki1|'''居中的内容'''}}調用此模板返回的結果會是:

'''居中的内容'''

簡而言之,<nowiki>内容</nowiki>{{#tag:nowiki | 内容}}的區別是:前者在模板的源代碼頁面起作用,而後者會在使用模板的頁面起作用。

特殊的模板引用

  • 子頁面引用
    • 格式:{{/子页面}}
示例
模板源碼 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. ^ 1.0 1.1 Help:魔术字#其他特殊符號. 2015-08-02. 
  2. ^ MediaWiki更新记录. 2015-08-02. 

參見

中文

英文