我目前有一个在内部媒体维基上运行的简单信息框模板。我想将页面类别传递给模板,以便我可以使用类别树生成列表。
是否可以让模板选择 Category = foo
从我已经有的页面
[[Category:Foo]]
写在他们身上?
即我在页面顶部的模板文本会有一个类似的部分
{{Infobox website | Category = *something* }}
[[Category:Foo]]
从我所有页面上已有的内容中提取?
我目前有一个在内部媒体维基上运行的简单信息框模板。我想将页面类别传递给模板,以便我可以使用类别树生成列表。
是否可以让模板选择 Category = foo
从我已经有的页面
[[Category:Foo]]
写在他们身上?
即我在页面顶部的模板文本会有一个类似的部分
{{Infobox website | Category = *something* }}
[[Category:Foo]]
从我所有页面上已有的内容中提取?
没有内置的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.''
}}