如何移除MediaWiki页脚链接外的括号?技术求助
解决MediaWiki页脚链接括号包裹及消息显示异常问题
一、搞定⧼contact⧽显示异常的问题
出现⧼contact⧽是因为你调用的contactpage-label是未定义的消息键,MediaWiki找不到对应翻译文本时,就会用这种格式显示消息键。你可以二选一解决:
方案1:直接用固定文本
把代码里的$skin->msg('contactpage-label')->text()替换成你要显示的文字,比如'联系我们':
$wgHooks['SkinAddFooterLinks'][] = function( Skin $skin, string $key, array &$footerlinks ) { if ( $key === 'info' ) { // 换成info区块避免括号 $footerlinks['contact'] = Html::element( 'a', [ 'href' => 'https://www.example.org/wiki/Special:Contact', 'rel' => 'noreferrer noopener' ], '联系我们' // 直接用固定文本 ); } };
方案2:添加自定义消息(支持多语言)
如果需要多语言适配,在你的扩展目录下创建i18n/zh.json文件,内容如下:
{ "@metadata": { "authors": [ "你的名字" ] }, "contactpage-label": "联系我们" }
然后在LocalSettings.php里添加(替换成你的扩展名称):
$wgMessagesDirs['YourExtensionName'] = __DIR__ . '/extensions/YourExtensionName/i18n';
这样MediaWiki就能找到contactpage-label对应的中文翻译了。
二、移除页脚链接的括号
你之前把链接加到了places区块,默认皮肤(比如Vector)会自动给这个区块的所有内容包裹括号。最便捷的解决方法:
把代码里的if ($key === 'places')改成if ($key === 'info'),info是页脚的另一个区域,不会自动添加括号。
如果一定要用places区块,就得修改皮肤模板取消括号,但这种方法对新手来说太复杂,不推荐。
内容的提问来源于stack exchange,提问作者QnC
相关产品推荐
相关产品推荐

