コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

Help:テンプレート

Help:Templateから転送)

ウィキペディア日本語版ヘルプページです。


この文書は、テンプレートの利用と作成ないしあるページを別のページに埋め込む方法に関して、ウィキペディアの編集の仕方を説明するものです。

Wikipedia:テンプレートに、テンプレートに関する文書が紹介されています。

テンプレートとは

[編集]

テンプレートとは、ウィキペディアにおいて、定型文の入力を簡便にするなどのために用いられる仕組み、またこの仕組みを使って他のページに呼び出されているページのことです。ハイパーリンクを使って、テキストを直接コピーをせずに参照できる「トランスクルージョン」 (transclusion) という手法を使っています。

個々のテンプレートの実体は、他のページと同じような独立した個々のページです。テンプレートは主に、複数のページにおいて同じ内容を表示するために使われます。テンプレートを変更すると、そのテンプレートを使ったページが新たにキャッシュされた時に変更が反映されます。

トランスクルージョンはプロジェクト内のページであれば、基本的にどんなページにも使えます。Help:テンプレート早わかりなどでは説明を簡単にするために、「Template名前空間にあるページがテンプレートである」としていますが、実際にはどんなページも「テンプレート」として使うことができます。ただし、Template名前空間にページを置くことで、ウィキテキスト中にただ{{テンプレート名}}とするだけで、あらゆる名前空間にこのテンプレートを呼び出すことができます(他の名前空間のページを読み込む方法については#Template名前空間以外のページの呼び出し方参照)。

なお、テンプレートを使う際には、読み込めるページサイズに制限があります。詳しくはHelp:テンプレートの制限を参照してください。

テンプレートを使う

[編集]

テンプレートを呼び出す

[編集]

テンプレートをページ内に呼び出すには、次のように記述します。

{{テンプレート名}}

この{{テンプレート名}}という書き方を、「テンプレートタグ」と呼んでいます。

例えばTemplate:最新の出来事というテンプレートについて考えてみましょう。ウィキページに{{最新の出来事}}を挿入すると、このタグのあるすべての記事に以下のテキストが表示されます。

{{Reader toc ja}}のように、単語の間に空白のあるテンプレート名も可能です。メディアウィキでは、最初の文字の大文字・小文字を区別しませんので、{{cleanup}}と{{Cleanup}}は同じテンプレートを呼び出しますが、{{cfd}}と{{CfD}}(最後の"d"は大文字・小文字)は区別されます(Help:ページ名参照)。

テンプレートはまた、テンプレートの生成時に代入されるテンプレート変数を扱えます。

{{テンプレート名|引数1|引数2|.....}}

または

{{テンプレート名|テンプレート変数1=引数1|テンプレート変数2=引数2|.....}}

この場合、引数の部分はそれぞれ自由に変えることができます。各テンプレートでどのような引数に何を入れるかについては、各テンプレートページの説明を確認してください(説明がない場合は編集画面にして、ソースを覗いてください。ノートページに書いてある場合もあります。それでも分からないときはテンプレートを作った人に聞くとよいでしょう)。

なお、{{テンプレート名|引数1|引数2|.....}} の書き方は、引数の中に = が含まれているとうまく動作しません。この場合は、

{{テンプレート名|1=引数1|2=引数2|.....}}

のように、該当する引数の前に数字と = を入れてください。数字は、引数の「番目」の数です。

{{PAGENAME}} のような、システム変数と呼ばれるものは、テンプレートと同じ書き方ですが、テンプレートではありません。詳しくはHelp:マジックワードを参照してください。また、主としてテンプレート中で使われる {{#....}} のように、{{# で始まっているものも、条件文と呼ばれる別のものです。

スペースの無視

[編集]

テンプレート名の前後の半角スペース、タブ、改行はないものとして扱われます。またテンプレート変数が = で指定されているとき、テンプレート変数や引数の前後の半角スペース、タブ、改行はないものとして扱われます。= で指定されていないとき、引数の前後のスペースは無視されません。

テンプレートの内容 読み込み方 表示
「Template:経路b」
{{{1|東京}}}から{{{2|博多}}}まで
{{経路b|1=名古屋|2=新大阪}}
名古屋から新大阪まで
{{ 経路b | 1 = 名古屋 | 2 = 新大阪 }}
名古屋から新大阪まで
{{経路b|名古屋|新大阪}}
名古屋から新大阪まで
{{経路b|名古屋 | 新大阪}}
名古屋 から 新大阪まで

自己リンク

[編集]

通常、[[リンク先]] とするとリンクが作成されますが、このリンク先にそのページ名を入れると、自己リンクを避けるため、リンクではなくただの太字になります。テンプレートを呼び出した場合にも、テンプレート内に呼び出しした側のページへのリンクが含まれていると、自己リンクを防ぐため、リンクではなくただの太字になります。たとえば、「Template:C」に

[[D]] - [[E]] - [[F]]

とあったとき、ページ「D」から

{{C}}

として呼び出した場合には、

D - E - F

のように表示されます。ただし、リンク先がリダイレクトの場合には、自己リンクの解決は行われません。

テンプレート名をテンプレートやシステム変数で指定する

[編集]

テンプレート名をテンプレートやシステム変数で指定することは可能です。たとえば、(イメージ)

テンプレート テンプレート 読み込み方 表示
「Template:おなまえ」
さいとう
「Template:欄」
おなまえ
{{ {{欄}} }}
さいとう
「Template:不思議」
あれよあれよ
ページ「不思議」内にて
{{ {{PAGENAME}} }}
あれよあれよ

このとき、4つの大括弧を左右とも {{{{欄}}}} のように連続してしまうと、うまく働きません。少なくともどちらかを2つずつに分けてください。

テンプレートの内容で置き換える

[編集]

{{テンプレート名}}というテンプレートタグは、「テンプレートをそこで呼び出す」という指示ですので、閲覧する時点でのテンプレートの内容が挿入されます。テンプレートが更新されれば、そのテンプレートを呼び出しているページにも変更が反映されます。

しかし、それでは不便なこともあります。編集した時点でのテンプレートの内容を恒久的に保存したい場合です。この要求に応えるため、テンプレート呼び出しをその内容で置き換えることができます。決まった呼び方はありませんが、「subst展開」と呼ばれています。(注:<ref>タグ内ではsubst展開は使用できません。展開されず、{{subst:テンプレート名...}}がそのまま残ります。)

{{subst:テンプレート名....}}

このように subst:{{ とテンプレート名の間に記述します。subst展開を使って投稿すると、次に編集画面を開いたときには、{{subst:テンプレート名}} は残っておらず、テンプレートの内容のみが表示されているでしょう。

subst展開を使うかどうかはテンプレートごとに決められています。基本的には、テンプレートの内容を常に反映し続けたい場合はsubst展開を使わず、逆にその時点でのテンプレート内容で確定したい場合はsubst展開を使うことになります。テンプレートによっては、どちらでも構わない場合もあります。テンプレートを使用する際と同様、そのテンプレートの説明をお読みください。

テンプレート呼び出しと同様、subst展開でもリダイレクトは有効です。つまり、「Template:別名」が「Template:転送先」へのリダイレクトの時、{{subst:別名}}でも{{subst:転送先}}でも同じ結果になります。

subst展開とライセンス

[編集]

subst展開では、他のページの内容を複製することに相当することが起こります。そのため、複製に関するライセンス規定(著作権)を考慮し、複製元についての情報を「要約欄」に記入しておくと良いでしょう。

要約欄では、ページの分割や統合を行う際と同様に、subst展開したテンプレートへリンクしておくと良いかもしれません。例えば、「[[Template:○○]]をsubst展開」や「{{subst:[[Template:○○|]]}}」のように記入します。

subst展開に対応したテンプレート

[編集]

subst展開に対応したテンプレートを書く際には、注意する点があります。

subst展開されたテンプレートの内部では、テンプレート呼び出し、マジックワード、条件文は展開されません。これらを展開するには、それぞれに subst: を付ける必要があります。ただし、普通に付けて保存してしまったのでは、保存した時点で展開されてしまいます。よって、以下のような小細工を行う必要があります。

  1. includeonly で囲む方法。<includeonly>subst:</includeonly>
  2. 引数のデフォルト値を用いる方法。
    • 引数名substを使う場合 {{{subst|subst:}}}
    • 無名引数を使う場合 {{{|subst:}}}

これらを記述した場合、テンプレート呼び出し時に文字列「subst:」が出力されてしまう不具合がありました。この不具合があったことにより、条件文などを含む場合には、テンプレート作成時に普通のテンプレート呼び出しとsubst展開のどちらか一方を選択することが必要でした。

safesubst: は、この不具合を解決します。上記例にある subst: の代わりに safesubst: を用いることで、テンプレート呼び出し時に余分な文字列が出力されず、subst展開時と同じ値を返します。

何らかの理由により、必ずsubst展開しなければならないテンプレートでは、{{subst!}} を使用します。このテンプレートは、subst展開を行わない通常のテンプレート呼び出しを行った場合には、エラーを表示します。このようにsubst展開に関連し支援するテンプレート群がいくつかあります。詳しくはSubst展開支援テンプレート一覧をご覧ください。

テンプレートのソースを表示する

[編集]

通常あまり使うことはありませんが、テンプレートの説明をするようなとき、テンプレートのソースをそのまま(nowikiで)表示させたいことがあります。この場合には、

{{msgnw:テンプレート名}}

のように記入します。

テンプレート 読み込み方 表示
「Template:すけすけ」
たとえば[[メインページ]]で
{{すけすけ}}
たとえばメインページ
{{msgnw:すけすけ}}
たとえば[[メインページ]]で

Template名前空間以外のページの呼び出し方

[編集]

定型文などのテンプレートはTemplate名前空間に作られるべきですが、議題を分割したサブページを読み込むなど、Template名前空間以外のページをトランスクルードしたいときがあります。ここでは、そのような場合の呼び出し方を一覧にしておきます。

名前空間 ページ名の例 呼び出し方
Template Template:固有名
{{固有名}}
標準名前空間 固有名
{{:固有名}}
その他 名前空間名:固有名
{{名前空間名:固有名}}

標準名前空間(普通の記事)を読み込む場合、{{ のあとに : が必要なことに気をつけてください。

またサブページは、

{{/サブページ名}}

のように相対リンクを用いて読み込むことができます。詳しくはHelp:サブページをご覧ください。

テンプレート本体を見る

[編集]

テンプレートは、他のページと同じような独立した1つのページですから、他のページと同じように開いて閲覧することができます。あるページの中で使われているテンプレートは、編集画面を開くとページの一番下に「このページで使われているテンプレート:」としてリストされます(保護中のページではソースを表示させてください)。ここから各テンプレートページに行くことができます。

なお、ノートページなどから、あるテンプレートへとリンクするときは、Template:Tl を使うと便利です。{{Tl|テンプレート名}} とすることで、テンプレートにリンクして{{テンプレート名}} と表示されます。将来的にテンプレート名が変わる予定がない場合は {{subst:Tl|テンプレート名}} とすることも検討してください。

テンプレートの編集の仕方

[編集]

テンプレートの編集は、通常のページと同じです。

新規作成

[編集]

新しいテンプレートを作成するには、通常のページの作成と同じようにURLを直接入力したり、未執筆リンク(いわゆる赤リンク)から行ったりします。一般に未執筆リンクは [[Template:新規テンプレート]] のようにすると作成できますが、{{新規テンプレート}} のようにすることでも作ることもできます。この場合、新規テンプレート名にふさわしいページ名への未執筆リンクとなります。

基本的には、{{テンプレート名}}の代わりに表示される内容は、そのテンプレート名のページの中身全体と同じになります。たとえば、「Template:切符」の内容が

乗車券

であったならば、

{{切符}}

乗車券

のようになります。


注意:すでにあるテンプレート名を指定した場合は、それが読み込まれます

テンプレートの説明文

[編集]

テンプレートには、テンプレートの説明文(使い方や引数の説明など)を書くことができます。 詳しくは、テンプレートの説明文を参照してください。

加筆・変更

[編集]

テンプレートページ本体へ行って、内容を編集します。なお、既存のテンプレートを編集すると、そのテンプレートを呼び出しているすべてのページに影響が及ぶことになります。編集をする前に、リンク元をクリックして (参照読み込み) とあるページを見つけ、どのページからどのように呼ばれているかを確認してください。大きな変更を加えるときはノートページで事前に相談をした方がよいでしょう。また複雑なテンプレートの場合は、自分の利用者ページやサンドボックスで試し書きをした方がよいかもしれません(Wikipedia:テンプレートのサンドボックスとテストケースも参照してください)。

新規作成・加筆・変更時の注意点

[編集]

内容・カテゴリ等がすぐに反映されない現象

[編集]

ウィキペディアのサーバーキャッシュの仕様(テンプレート等のトランスクルージョンに対する仕様)が関係して、新規作成・加筆・変更時にそのテンプレートの説明文、カテゴリがすぐに反映されない現象、テンプレートを呼び出したページに内容がすぐに反映されない現象が生じることがあります。通常、1時間から数日経てば自然に反映されます。

すぐに反映させたい場合には、ウィキペディアのサーバーキャッシュを強制的にいったん破棄することで対処します。破棄する方法はいくつかありますが、最も一般的な方法は「空編集」(編集画面を開いて何も変更せず投稿。履歴に残らない。)です。そのテンプレートやテンプレート呼び出しページを空編集することで、すぐに反映させることができます(テンプレートに関係しているページがとても多い場合やブラウザのキャッシュが関係している場合にはこの方法を使えないときがあります)。

なお、ナビゲーション・ポップアップには個々のページやその編集画面を開くことなく空編集を行なう機能があります。

テンプレート内に書かれたリンクとカテゴリの呼び出しページでの効果

[編集]

テンプレート内に書かれたリンクやカテゴリはそのテンプレートを呼び出したページにもあることになります。従って、カテゴリページやリンク先ページの「リンク元」には、テンプレートのページとそのテンプレートを呼び出したページの両方が表示されます(上述のウィキペデイアのサーバーキャッシュの仕様によって反映が遅れることがあります)。

ただし、「Help:テンプレート#一部を無視させる」にある方法を用いることによって、呼び出したページには関係させずテンプレート内でのみ有効なリンクやカテゴリとしたり、逆に、呼び出したページでのみ有効とすることもできます。

テンプレート変数

[編集]

テンプレート変数(テンプレート引数/パラメータ)は、テンプレート作成時にその中で {{{テンプレート変数名}}} のように書き表します。すなわち、{{{テンプレート変数名}}} は、他のページから埋め込まれるとき、そのページに指定した引数に変化します。テンプレート変数のあるテンプレートの呼び出しは、

{{テンプレート名|テンプレート変数1=引数1|テンプレート変数2=引数2|.....}}

でした。ですから、たとえば「Template:経路a」というテンプレートが

{{{発駅}}}から{{{着駅}}}まで

のとき、このテンプレートを

{{経路a|発駅=名古屋|着駅=新大阪}}

のように呼び出すと、「名古屋」がテンプレート変数 {{{発駅}}} に、「新大阪」がテンプレート変数 {{{着駅}}} に入ります。したがって、これは

名古屋から新大阪まで

のようになります。(参考:東海道新幹線山陽新幹線名古屋駅新大阪駅

また、「Template:経路b」というテンプレートが

{{{1}}}から{{{2}}}まで

のとき、このテンプレートを

{{経路b|名古屋|新大阪}}

のように呼び出すと、「名古屋」がテンプレート変数 {{{1}}} に、「新大阪」がテンプレート変数 {{{2}}} に入ります。つまり、

{{経路b|1=名古屋|2=新大阪}}

のように呼び出すのと同じです。ただし値の前後に空白があっても無視されます。したがってこれも

名古屋から新大阪まで

となります。

デフォルト値指定

[編集]

埋め込んだページで引数が指定されていないときには、{{{テンプレート変数名}}}がそのまま表示されることになります。それを防ぐため、引数が指定されていない場合の動作を指定することができます (m:Help:Parameter default)。これには | を使い、

{{{テンプレート変数名|デフォルト}}}

のようにします。たとえば「Template:経路a」を

{{{発駅|東京}}}から{{{着駅|博多}}}まで

のように、「Template:経路b」を

{{{1|東京}}}から{{{2|博多}}}まで

に変更すると、次のようになります。(参考:東京駅博多駅

テンプレートの内容 読み込み方 表示
「Template:経路a」
{{{発駅|東京}}}から{{{着駅|博多}}}まで
{{経路a|発駅=名古屋|着駅=新大阪}}
名古屋から新大阪まで
{{経路a|発駅=名古屋}}
名古屋から博多まで
{{経路a|着駅=新大阪}}
東京から新大阪まで
{{経路a}}
東京から博多まで
「Template:経路b」
{{{1|東京}}}から{{{2|博多}}}まで
{{経路b|名古屋|新大阪}}
名古屋から新大阪まで
{{経路b|名古屋}}
名古屋から博多まで
{{経路b|新大阪}}
新大阪から博多まで
{{経路b}}
東京から博多まで

これを応用すれば、| の右側に何も書かないことで、引数が指定されなかった場合に、対応する変数自体を表示しないようにすることができます。たとえば、テンプレートのソースに {{{変数1}}} と書いた場合、呼び出すときに {{{変数1}}} に対応する引数を指定しないと、{{{変数1}}} と表示されてしまいますが、ソースを {{{変数1|}}} としておけば、この部分には何も表示されません。

省略された変数名への数字の割り当て方

[編集]

テンプレート変数を呼び出し側で省略すると、順に1から番号が振られます。この番号は最初から順に振られますが、= のある部分には、番号を振る必要がありませんので、振られません。従って、

{{変数名|東=鳥海山|西=阿蘇山|秋田県|熊本県}}

{{変数名|東=鳥海山|西=阿蘇山|1=秋田県|2=熊本県}}

の意味となり、

{{変数名|秋田県|熊本県|東=鳥海山|西=阿蘇山}}

に等しくなります。(参考:鳥海山秋田県山形県)、阿蘇山熊本県)、北海道

= のない引数があるとき、まずそこに数字名のテンプレート変数が 1 から順に振られます。一方、同じテンプレート変数が複数ある時には、位置的に後にあるものが有効になります。従って、

{{変数名|東=鳥海山|西=阿蘇山|1=北海道|秋田県|熊本県}}

は、

{{変数名|東=鳥海山|西=阿蘇山|1=北海道|1=秋田県|2=熊本県}}

とみなされ、1=北海道| の部分は無視されます。

特殊な変数名

[編集]

テンプレート変数を指定するとき、= の前を空欄にすることもできます。これは長さ0の変数名と見なされ、{{{}}} とある部分に置き換えられます。たとえば、

{{変数名|=
|A|B|C|=
|D|E|F|=
|G|H|I|=
}}

のように省略された変数名の番号を調整するためのダミーとして用いられます。この例では、A{{{1}}} に、D{{{4}}} に入ります。もし、ここでの = がなければ、A{{{2}}} に、D{{{6}}} にはいることになります。

一部を無視させる

[編集]

他のページから呼ばれたときに無視する部分を指定したり、他のページから呼ばれたとき以外は無視する部分を指定したりすることができます。

呼び出し先の表示内容の指定

[編集]

<noinclude><onlyinclude> は、テンプレートが他のページから呼び出されたときに表示しない部分、もしくは表示する部分を指定します。次のような用途で使われます。

  • テンプレートの説明を書く。(テンプレートの説明は、他のページから呼び出されたときには伏せられます。)
  • テンプレートのカテゴリを書く。(テンプレートのページだけがカテゴリに加えられる。他の場合には、テンプレートを呼び出しているすべてのページが同じカテゴリに加えられることになります。)
  • 言語間リンクを書く。(カテゴリと同じ理由です。)

なお、テンプレートのソースを見やすくするなどの目的で不用意に <noinclude> の直前に改行を入れると、テンプレートを呼び出したページにおいて表示が崩れる原因となることがあります。また説明が長くなるときは説明専用のページを作ることも検討してください(詳しくはHelp:テンプレートの説明文参照)。

<noinclude>
[編集]

テンプレートのある部分を <noinclude></noinclude> で挟むと、その部分は他のページから呼び出したときに取り除かれます。たとえば、「Template:内弁慶」が

彼は<noinclude>家ではいばっているが外では</noinclude>なよなよしている。

の場合、「Template:内弁慶」を開くと

彼は家ではいばっているが外ではなよなよしている。

と表示されますが、他のページから

{{内弁慶}}

のように呼び出された場合には、

彼はなよなよしている。

とだけ表示されます。(参考:内弁慶

<onlyinclude>
[編集]

<noinclude> と同じ目的ですが、逆に呼び出された時の表示部分を指定するものとして、<onlyinclude> があります。こちらは他のページから呼び出されたときに <onlyinclude></onlyinclude>の間だけ返して他は無視します。たとえば「Template:居留守」が

電話がかかってきたら<onlyinclude>いない</onlyinclude>って言って。

の場合、「Template:居留守」を開くと、

電話がかかってきたらいないって言って。

と表示されますが、他のページから

{{居留守}}

のように呼び出された場合に、

いない

とだけ表示されます。(参考:電話居留守

テンプレートページの表示内容の指定

[編集]

先の2つと逆の用途のものが、<includeonly> です。これは、<includeonly></includeonly> に挟まれた部分が他のページから呼び出されたときだけ有効で、そのページ(テンプレート)を直接表示した時には無視される、というものです。たとえば、「Template:へそくり」が

貯金は1万円<includeonly>だけどほかにスイスに1億フラン</includeonly>あります。

の場合、「Template:へそくり」を直接表示すると

貯金は1万円あります。

ですが、

{{へそくり}}

のように呼び出された場合には

貯金は1万円だけどほかにスイスに1億フランあります。

となります。(参考:貯金へそくり日本円スイス・フラン

テンプレートを貼ったページをあるカテゴリに入れたいが、テンプレートそのものはそのカテゴリに入れたくない、というような場合によく使われます。たとえば、削除依頼テンプレートの削除カテゴリなどです。

<includeonly>使用時の注意
[編集]

<includeonly> と </includeonly> の前後にある改行は呼び出される部分に含まれています。例えば <includeonly></includeonly> のテンプレート本体と <noinclude></noinclude> のテンプレートの説明等だけのテンプレートページでは、<noinclude></noinclude> が呼び出される部分になるので、</noinclude> と <includeonly> の間や </includeonly> と <noinclude> の間にある改行は呼び出される部分に含まれます。また、<includeonly> の直後と </includeonly> の直前の改行も呼び出される部分に含まれます。

一覧

[編集]

以上3つを表にまとめると次のようになります。

空間 ソース テンプレートを直接表示したとき 呼び出したページにおける表示
<noinclude> A<noinclude>B</noinclude>C ABC AC
<onlyinclude> A<onlyinclude>B</onlyinclude>C ABC B
<includeonly> A<includeonly>B</includeonly>C AC ABC


なお、テンプレートを呼び出した場合、<onlyinclude> が最優先され、その外側にある <nowiki>, <pre>, <noinclude> は効果がありません。

空間 ソース テンプレートを直接表示したとき 呼び出したページにおける表示
<nowiki> <nowiki>
A<onlyinclude>B</onlyinclude>C
</nowiki>
A<onlyinclude>B</onlyinclude>C B
外側の <noinclude> <noinclude>
A<onlyinclude>B</onlyinclude>C
</noinclude>
ABC B
内側の <noinclude> <onlyinclude>
A<noinclude>B</noinclude>C
</onlyinclude>
ABC AC

システム変数

[編集]

テンプレートの中に {{PAGENAME}} などのシステム変数を書いて、他のページから呼び出した場合には、呼び出している側のページにあるものとして認識されます。たとえば、「Template:子分」に

{{PAGENAME}}

と書いて保存し、このテンプレートをページ「親分」において

{{子分}}

のように呼び出した場合には、呼び出した側のページ名である「親分」が表示されます。

時刻などのシステム変数を、テンプレートに置くと、常に閲覧した時点のものが表示されます。テンプレートを貼った時点に固定するには、テンプレートの中で {{<includeonly>subst:</includeonly>CURRENTTIME}} のようにし、このテンプレートをさらに subst: で呼び出します。

システム変数について詳しくはHelp:マジックワードなどをご覧ください。

テンプレートの中で条件文を使う

[編集]

テンプレートの中で条件文を使うことができます。詳細はHelp:条件文をご覧ください。

テンプレートの中でテンプレートを呼び出す

[編集]

テンプレートの中でさらにテンプレートを呼び出すことができます。

テンプレート テンプレート 読み込み方 表示
単純な例 「Template:内々」
うえお
「Template:内」
い{{内々}}か
あ{{内}}き
あいうえおかき
引数を受け渡す 「Template:孫」
う{{{1}}}お
「Template:子」
い{{孫|{{{1}}}}}か
あ{{子|え}}き
あいうえおかき
引数でテンプレート変数
を指定する
「Template:部屋」
う{{{住所}}}お
「Template:家」
い{{部屋|{{{1}}}=え}}か
あ{{家|住所}}き
あいうえおかき
引数でテンプレート名
を指定する
「Template:皿」
うえお
「Template:盆」
い{{{{{1}}}}}か
あ{{盆|皿}}き
あいうえおかき

テンプレートとして読み込んだ中に {{読み込んだテンプレート自身の名前}} があるとさらには展開されず、そのまま文字として表示されます。たとえば「Template:ナルシスト」に

{{ナルシスト}}なの

として

{{ナルシスト}}です

と呼び出すと、

{{ナルシスト}}なのです

と表示されます。なお、「Template:ナルシスト」自身を表示すると、一回は「Template:ナルシスト」を展開するため、

{{ナルシスト}}なのなの

となります。

通常、このような自分自身の読み込みは、<noinclude>で囲まれるか<onlyinclude>の外に置かれた説明文の中で行われます。そのような時には、ここに挙げたような問題は生じません。

テンプレート冒頭の特殊文字

[編集]

テンプレートが、: ; * # のいずれかで始まっているとき、それは行頭にあると見なされ、インデント箇条書きと見なされます。それを避けるためには、: ; * # などを <nowiki> </nowiki> で囲むか文字参照を使ってください。

テンプレートの引数に半角等号(=)を使う場合の注意

[編集]

例えば、誤った記事名の記事を正しい記事名へと移動した際に、初作成者にそれをお知らせするテンプレートである{{記事名の付け方違反}}では、誤った記事名の指定で半角等号=を使用する場合があります。

例として、ルイ=ルネ・デ・フォレ(等号が半角、フランスの小説家)を正しい記事名であるルイ=ルネ・デ・フォレ記事名の付け方の規定だと、人名地名では全角文字を使用する)に移動したことを移動先に{{記事名の付け方違反}}で入力しようとした場合、通常では

  • {{記事名の付け方違反|ルイ=ルネ・デ・フォレ|ルイ=ルネ・デ・フォレ}}

と記入しますが、これは「ルイ=」の部分をテンプレートは「引数ルイ」と認識してしまい、テンプレート内部で処理が設定されていない引数ですからテンプレートが誤動作しますので、

  1. {{記事名の付け方違反|1=ルイ=ルネ・デ・フォレ|2=ルイ=ルネ・デ・フォレ}} (以降に引数番号を明言する)
  2. {{記事名の付け方違反|ルイ{{=}}ルネ・デ・フォレ|ルイ=ルネ・デ・フォレ}} (テンプレート{{=}})
  3. {{記事名の付け方違反|ルイ&#61;ルネ・デ・フォレ|ルイ=ルネ・デ・フォレ}}数値文字参照

などの、半角等号を代替記述する方法で展開させる必要が出て来ます。

これはテンプレート全般を使用する際に共通の仕様ですので、こういった問題が発生した場合はテンプレートの使用法を読み、引数名を確認するなどして対処して下さい。

ヒント

[編集]

長いテンプレートのソースは、

{{テンプレート名
 |変数1={{{1}}}
 |変数2={{{2}}}
 |...
}}

のように書くと読みやすくなります。

テンプレート内の改行が呼び出している記事に無駄な空白を作ってしまうことがあります。一般的に、テンプレート内に改行を2つ以上続けて使わないようにしましょう。

他のプロジェクトのテンプレート

[編集]

他のプロジェクト(他言語版姉妹プロジェクト)のテンプレートをそのまま読み込むことはできません。

ウィキペディアにおけるテンプレートの歴史

[編集]

ウィキペディアの最初の35か月間は、テンプレートや包含のメカニズムが全くありませんでした。2003年12月6日のMediaWiki 1.2.6でMediaWiki namespaceが導入され、{{msg:...}}の構文を利用して、ユーザーインターフェイスだけでなく定型メッセージの作成にも利用されました。例えば{{msg:stub}}を{{stub}}の代わりに入力していました。

2004年5月30日のMediaWiki 1.3へのアップグレードの間にこの機能は Template名前空間の利用に置き換えられました。"テンプレート名前空間初期化スクリプト"の機能として、システムメッセージ以外の全てのメッセージは新しい名前空間に移され、多くのリダイレクトが残りました。初期化スクリプトはまたリダイレクトを回避するために記事内のMediaWiki名前空間への参照をTemplate:で置き換えました。

英語版のWikipedia:削除依頼(当時は "votes for deletion" または "VfD"と呼ばれていました)は、短期間、MediaWiki名前空間の"Template:VfD-ページ名"というシステムメッセージを利用していました。これは2004年7月にTemplate:名前空間に移され、現在は"Template:VfD-ページ名"という名前になっていますが、このテンプレートを使わずに、今ではサブページが利用されています。

関連項目

[編集]

以下のテンプレートはテスト用に使えます。