维基百科如果语句不起作用



这是我的模板:测试

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和你的示例包含id4id2为空但给定(,{{{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>

相关内容

  • 没有找到相关文章

最新更新