这是我的模板:测试
id1: {{{#if: {{{id1}}} | {{{id1}}} | text1}}} <br>
id2: {{{#if: {{{id2}}} | {{{id2}}} | text2}}} <br>
id3: {{{#if: {{{id3}}} | {{{id3}}} | text3}}} <br>
id4: {{{#if: {{{id4}}} | {{{id4}}} }}} <br>
<br>
这是使用此模板的页面测试页的代码:
{{Test
| id1 = 123
| id2 =
}}
我的测试页的输出(用户看到的(是:
id1: 123
id2:
id3: {{{id3}}}
id4: {{{id4}}}
我希望输出为:
id1: 123
id2: text2
id3: text3
id4:
我做错了什么?为什么这没有输出我想要的? 编辑: 我正在使用mediawiki版本mediawiki-1.30.0。
当没有给出参数时(至于id3
和你的示例包含id4
,id2
为空但给定(,{{{id3}}}
计算为文字文本{{{id3}}}
。这是#if
条件下的真实值。
而是使用{{{id3|}}}
,它在管道后具有"未给出时"的默认值,此处为空 - 并且在#if
条件下被视为虚假。考虑
id1: {{{id1|text1}}}<br>
id2: {{{id2|text2}}}<br>
id3: {{{id3|text3}}}<br>
id4: {{{id4|}}}<br>
对于您的包含将导致输出
id1: 123
id2:
id3: text3
id4:
由于您希望在给定参数但为空时获得默认值,因此您将使用
id1: {{#if: {{{id1|}}} | {{{id1}}} | text1}} <br>
id2: {{#if: {{{id2|}}} | {{{id2}}} | text2}} <br>
id3: {{#if: {{{id3|}}} | {{{id3}}} | text3}} <br>
id4: {{#if: {{{id4|}}} | {{{id4}}} }} <br>