我目前在内部媒体维基上运行一个简单的信息框模板。我想将页面类别传递给模板,以便我可以使用类别树生成列表。
是否可以让模板拾取 类别 = foo
从我已经有的页面 [[Category:Foo]]
写在他们身上?
即我在页面顶部的模板文本将有一个类似
{{Infobox website | Category = *something* }}
从我所有页面上已有的[[Category:Foo]]
中获取它?
没有内置的魔术词来获取类别,但您可以轻松地为此创建一个解析器函数,并使用输出与例如 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.''
}}