Magic words (including parser functions, variables and behavior switches) are features of wiki markup that give instructions to Wikipedia's underlying MediaWiki software. For example, magic words can suppress or position the table of contents, disable indexing by external search engines, and produce output dynamically based on the current page or on user-defined conditional logic. Some of these features are especially useful for templates.
This page is a quick reference for magic words. For more information, refer to the main MediaWiki documentation:
In general, there are three types of magic words.
__NOTOC__
. They will change the behavior of a page, rather than return a value.{{#ifexpr:Y|Yes|No}}
, wrapped in double braces. They will take a value and return a value.{{PAGENAME}}
. A variable will be wrapped in double braces and will return a value in its place.The software generally interprets magic words in the following way:
<nowiki>
tags remove this magic so a magic word can itself be displayed (documented), e.g. <nowiki>{{#magic:}}</nowiki>
or {{#magic:<nowiki/>}}
.Magic words compared to templates:
#
(pound or hash), but template names will not start with a #
, and probably not end in a :
(colon), or be all-uppercase.{{#magic: p1 | p2 | p3}}
, the name is #magic
and it is followed by an unspaced :
and a required input parameter, p1
. With a template, p1
is optional and it is preceded by a |
(pipe) instead of a :
, e.g. {{template|p1}}
.Most magic words can be used in any needed locations on a page; see MOS:ORDER for guidance on where to place magic words that are behavior switches.
Note: The magic words above can also take a parameter, in order to parse values on a page other than the current page. A colon (:) is used to pass the parameter, rather than a pipe (|) that is used in templates, like {{MAGICWORD:value}}. For example, {{TALKPAGENAME:Wikipedia:MOS}} returns Wikipedia talk:MOS on any page.
Note: In the "Category" and "Category talk" namespaces, to wikilink (some) page name variables may require prefixing a colon to avoid unwanted categorization.
Page IDs can be associated with articles via wikilinks (i.e. Special:Redirect/page/3235121
goes to this page).
To output numbers without comma separators (for example, as "123456789" rather than "123,456,789"), append the parameter |R.
If, in these conditional functions, empty unnamed parameters are to be parsed as empty rather than as text (i.e. as empty rather than as the text "{{{1}}}", "{{{2}}}", etc.), they will require trailing pipes (i.e. {{{1|}}}, {{{2|}}}, etc., rather than {{{1}}}, {{{2}}}, etc.).
Magic words can sometimes behave weirdly when substituted or nested. It's possible to subst some magic words (so that the page stops being updated if the value of the word changes). Here are some examples of how this works:
{{#ifexist:}}
expression while allowing redirects to be identified and parsed differently