在mediawiki中,是否可以更改文章底部的“类别”标签。
例如以下文章:
=Paris=
blablablablablabla
[[Category:place_id]]
我希望看到更详细的内容(下面的示例不起作用):
=Paris=
blablablablablabla
[[Category:place_id|France]]
注意:我不想使用“重定向”,我想保留我奇怪的 id,因为它们链接到外部数据库。
在mediawiki中,是否可以更改文章底部的“类别”标签。
例如以下文章:
=Paris=
blablablablablabla
[[Category:place_id]]
我希望看到更详细的内容(下面的示例不起作用):
=Paris=
blablablablablabla
[[Category:place_id|France]]
注意:我不想使用“重定向”,我想保留我奇怪的 id,因为它们链接到外部数据库。
我认为 mediawiki 不支持此功能。但是,如何使用:
[[Category:France]]
在您的页面中,并将其设置为以您的 ID 命名的类别?France 只是“place_id”的子类别,您可以使用更多与父类别相关联的术语。为此,您只需编辑“法国”的类别页面,插入:
[[Category:place_id]]
另一种方法是将您的页面放在两个类别中,但在这种情况下,仍然会显示 id:
[[Category:place_id]]
[[Category:France]]
你可以用一个OutputPageMakeCategoryLinks
钩子来做到这一点。唉,那个钩子的接口似乎有点不方便——据我所知,它几乎只适用于完全替换标准类别链接生成代码。不过,您可以按照自己的意愿进行操作:
function myOutputPageMakeCategoryLinks( &$out, $categories, &$links ) {
foreach ( $categories as $category => $type ) {
$title = Title::makeTitleSafe( NS_CATEGORY, $category );
$text = $title->getText();
if ( $text == 'Place id' ) {
// set $text to something else
}
$links[$type][] = Linker::link( $title, htmlspecialchars( $text ) );
}
return false; // skip default link generation
}
$wgHooks['OutputPageMakeCategoryLinks'][] = 'myOutputPageMakeCategoryLinks';
(上面的代码基于OutputPage.php中的默认类别链接生成代码,有些简化;我假设您没有在 wiki 上使用语言变体转换,因此我删除了处理该问题的部分。请注意,此代码是未经测试! 使用风险自负。)