维基百科,如果声明不起作用

时间:2018-08-10 08:15:45

标签: mediawiki wikipedia mediawiki-templates

这是我的模板:测试

id1: {{{#if: {{{id1}}} | {{{id1}}} | text1}}} <br>
id2: {{{#if: {{{id2}}} | {{{id2}}} | text2}}} <br>
id3: {{{#if: {{{id3}}} | {{{id3}}} | text3}}} <br>
id4: {{{#if: {{{id4}}} | {{{id4}}} }}} <br>
<br>

这是使用此模板的TestPage页面的代码:

{{Test
| id1 = 123
| id2 = 
}}

我的TestPage(用户看到的)的输出是:

id1: 123
id2:
id3: {{{id3}}}
id4: {{{id4}}}

我希望输出为:

id1: 123
id2: text2
id3: text3
id4:

我在做什么错?为什么这没有输出我想要的? 编辑: 我正在使用mediawiki版本mediawiki-1.30.0。

1 个答案:

答案 0 :(得分:1)

如果未给出参数(例如您所包含的示例中的id3id4id2为空但已给出),{{{id3}}}的计算结果为文字文本{ {1}}。在{{{id3}}}条件下,这是一个真实值。

代替使用#if,它在管道之后具有默认值“ when not给出”,此处为空-在{{{id3|}}}条件下被视为虚假。考虑

#if

包含您的内容会导致输出

id1: {{{id1|text1}}}<br>
id2: {{{id2|text2}}}<br>
id3: {{{id3|text3}}}<br>
id4: {{{id4|}}}<br>

由于您希望在给定参数但该参数为空时获得默认值,因此请使用

id1: 123
id2:
id3: text3
id4: