MediaWiki Minerva移动皮肤不显示MediaWiki:Loginprompt该如何解决?
方案1:修复MediaWiki:Loginprompt在MinervaNeue皮肤的显示问题
MinervaNeue作为移动端专用皮肤,默认没有挂载登录页自定义提示的输出钩子,你可以在LocalSettings.php中添加以下钩子代码,手动注入提示内容,直接复用现有MediaWiki:Loginprompt的配置:
$wgHooks['BeforePageDisplay'][] = function ( $out, $skin ) { // 仅在Minerva皮肤的登录页生效 if ( $skin->getSkinName() === 'minerva' && $out->getTitle()->isSpecial( 'Login' ) ) { $loginPrompt = wfMessage( 'loginprompt' )->parse(); if ( $loginPrompt ) { // 将提示插入到页面最顶部,可自定义class加样式调整展示效果 $out->prependHTML( "<div class='minerva-login-prompt'>{$loginPrompt}</div>" ); } } return true; };
方案2:无需修改钩子的替代实现方案
如果你不想改动后端钩子逻辑,也可以用以下两种方案实现引导需求:
- 若你的站点本身关闭了普通注册通道,仅开放申请注册,可以直接在LocalSettings.php中添加
$wgGroupPermissions['*']['createaccount'] = false;,此时Minerva皮肤的登录页点击注册会自动触发权限不足提示,你只需编辑MediaWiki:Permissiondenied-createaccount页面的内容,加入前往Special:RequestAccount的引导即可 - 也可以直接编辑MediaWiki:Common.js,添加前端判断逻辑:当页面为Special:Login且当前为Minerva皮肤时,自动在页面顶部插入你需要的引导内容,效果和原生Loginprompt完全一致
内容的提问来源于stack exchange,提问作者BendiXB
相关产品推荐
相关产品推荐

