1

我目前有一个在内部媒体维基上运行的简单信息框模板。我想将页面类别传递给模板,以便我可以使用类别树生成列表。

是否可以让模板选择 Category = foo

从我已经有的页面 [[Category:Foo]]

写在他们身上?

即我在页面顶部的模板文本会有一个类似的部分

{{Infobox website | Category = *something* }}

[[Category:Foo]]从我所有页面上已有的内容中提取?

4

1 回答 1

0

没有内置的Magic Word用于获取类别,但您可以轻松地为此创建一个解析器函数,并使用例如Arrays 扩展的输出来确定页面是否属于某个类别。然而,这似乎需要做很多工作才能节省很少的工作(偶尔输入几个额外的字母)。

如果你想创建一个解析器函数来获取当前它就像这样简单:

function getCategories( &$parser, $title) {
    // Will return a comma separated list of categories.
    $categories = $title->getParentCategories();
    return implode(",", $categories);
}

如果您知道要检查每个页面的类别,您还可以使用Extension:PageInCat

编辑:我现在看到您的问题已标记为Semantic MediaWiki。这很简单:

{{#if:
  {{#ask:[[Category:Foo]] {{FULLPAGENAME}}|default=|}}
  |''This page is in Category:Foo!''
  |''This page is not in Category:Foo. Let's add it.''
}}
于 2016-04-27T07:42:11.163 回答