コンテンツにスキップ

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

「Help:テンプレート」の版間の差分

削除された内容 追加された内容
Trgbot (会話 | 投稿記録)
Wikipedia:井戸端/subj/テンプレートの作成についてで問題提起。現在の慣習にあっていないので除去
553行目: 553行目:


標準名前空間の記事の一部をテンプレート名前空間においてはいけません。これらは直接記事内に記入してください。
標準名前空間の記事の一部をテンプレート名前空間においてはいけません。これらは直接記事内に記入してください。

ウィキメディアプロジェクト以外の外部サイトへのリンクを系統的に行うためのテンプレートを作ってはいけません。


[[Wikipedia:カテゴリ]]や[[Wikipedia:関連項目]]で充分なときに、他の記事へのリンク集を作成するためにテンプレートを作らないでください。ウィキペディアンの皆さんの主観にもよりますが、項目の数が数個程度なら関連項目だけでじゅうぶんであり、10個程度になってからカテゴリを作ると考えるとよいでしょう。カテゴリは一つあればかなりの項目をサポート出来るので、カテゴリを使っても見にくくなってきてから、テンプレートを作ることを検討しましょう。
[[Wikipedia:カテゴリ]]や[[Wikipedia:関連項目]]で充分なときに、他の記事へのリンク集を作成するためにテンプレートを作らないでください。ウィキペディアンの皆さんの主観にもよりますが、項目の数が数個程度なら関連項目だけでじゅうぶんであり、10個程度になってからカテゴリを作ると考えるとよいでしょう。カテゴリは一つあればかなりの項目をサポート出来るので、カテゴリを使っても見にくくなってきてから、テンプレートを作ることを検討しましょう。

2015年10月20日 (火) 14:40時点における版

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


編集用ヘルプ目次
編集の基本
ページの編集
新規ページの作成
記事名チェック
文書の体裁
セクションと目次
箇条書き / 表の作り方
脚注 / ISBNのリンク
特殊文字
HTMLタグの使用
画像の表示
画像などの利用
ファイルページ
数式の書き方
リンクする
リンク / URL
パイプ付きリンク
言語間・ウィキ間リンク
ウィキデータ
カテゴリ
リダイレクトソフト
ページの位置づけ
名前空間
サブページ
ミスなどの修正
新規ページの巡回
以前の版にページを戻す方法
ページの移動
作業の効率化
マジックワード
テンプレート早わかり
テンプレートの制限
条件文 / テンプレートの説明文
ナビゲーションボックス
コミュニケーション
要約欄
細部の編集
ノートページ / 過去ログ
ウィキラブ
ウィキメール / 感謝
その他
編集の競合
ページ名の働き
記事の定義
ページサイズ
音声・動画の作成と利用
棒グラフの書き方
サンドボックス
ウィキポータル

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

テンプレートとは

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

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

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

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

テンプレートを使う

テンプレートを呼び出す

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

{{テンプレート名}}

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

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

{{Reader toc ja}}のように、単語の間に空白のあるテンプレート名も可能です。最初の文字だけは大文字と小文字を区別しませんので、{{cleanup}}と{{Cleanup}}は同じテンプレートになりますが、{{cfd}}と{{CfD}}は区別されます(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> <onlyinclude> <includeonly>
ソース A<noinclude>B</noinclude>C A<onlyinclude>B</onlyinclude>C A<includeonly>B</includeonly>C
テンプレートを直接
表示したとき
ABC ABC AC
呼び出したページ
における表示
AC B ABC


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

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

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

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

テンプレートの目的と基本的ルール

  • 定型メッセージを記事内に一貫した形で挿入するため(スタブや曖昧さ回避ページであることなどを示す)
  • 簡単なショートカットを使って、著作権侵害、中立性の問題などのさまざまな問題に関する定型文を挿入するため
  • 関連する記事をまとめたリンク集への誘導テンプレートやサイドバーを作成するため
  • Infoboxを作成するため
  • 多言語間でほとんど共有できるようなテキストの言語間流用性を提供するため。各言語毎に一部の用語だけが異なっている場合、その用語にテンプレートを使い、各言語のプロジェクトでそのテンプレートの中身を定義することで、簡単に共有を実現します。生物分類表で採用されています。

記事の名前空間にあるテンプレートは読者の理解を促す情報を提供します。これらは関連するページへのリンクを支援したり、内容が不足していることを警告する情報を示すのに使います。編集者にのみ関係するテンプレートの情報は記事のノートページに使用します。

標準名前空間の記事の一部をテンプレート名前空間においてはいけません。これらは直接記事内に記入してください。

Wikipedia:カテゴリWikipedia:関連項目で充分なときに、他の記事へのリンク集を作成するためにテンプレートを作らないでください。ウィキペディアンの皆さんの主観にもよりますが、項目の数が数個程度なら関連項目だけでじゅうぶんであり、10個程度になってからカテゴリを作ると考えるとよいでしょう。カテゴリは一つあればかなりの項目をサポート出来るので、カテゴリを使っても見にくくなってきてから、テンプレートを作ることを検討しましょう。

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

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

テンプレートの廃止と削除

まれに、廃止または削除するべきと思うテンプレートがあるかも知れません。テンプレートを廃止する事は影響が大きいので、慎重に考えるべきです。ここでは考慮すべき点を挙げておきます。

手順としては、いつもの通り、まずはそのテンプレートまたは関連するテンプレートなどのノートページにおいて、議論ののちに合意を得て下さい。

テンプレートの場合は、削除以外に廃止の選択肢があります。

  • 削除した場合、呼び出しているページには赤リンクが表示される状態になります。
  • 廃止した場合、呼び出しているページにはテンプレートがそのまま表示されます。

また、これらは最新版のみならず過去の版においても同様の状態となります。ここがポイントです。

不要と判断された以上は除去されるべきですので、削除・廃止のどちらを選んでも(理想的には)最新版における表示状態は変わりませんが、かつてテンプレートが使用されていた過去の版における表示の違いがあります。廃止を選択する目安は、過去の版において何らかの表示がなされていた方が望ましい結果を得られる場合です。

廃止されたテンプレートには、それを告知するテンプレートである{{廃止されたテンプレート}}を貼って下さい。

注意事項

  • 廃止されたテンプレートは削除依頼に出さないでください
  • 廃止されたテンプレートの内容を白紙化しないでください

テンプレートを「廃止」する意義は上述したように過去の版で表示されていた方が有効であるためです。削除や白紙化を行うと過去の版で表示されなくなるため、「廃止」の意味がなくなります。

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

ウィキペディアの最初の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-ページ名"という名前になっていますが、このテンプレートを使わずに、今ではサブページが利用されています。

関連項目