You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MediaWiki更新后皮肤报错:$this->html('headelement')被弃用,求替代方法

MediaWiki 1.39+ 皮肤headelement弃用问题的解决办法

不需要完全重建皮肤,只需要替换触发错误的代码即可。

替代方案

将原来的:

$this->html( 'headelement' );

替换为以下代码:

// 输出DOCTYPE和html根标签
echo '<!DOCTYPE html>';
echo '<html lang="' . $this->data['pageLanguage'] . '" dir="' . $this->getSkin()->getTitle()->getPageViewLanguage()->getDir() . '">';

// 输出head部分
echo '<head>';
$this->getSkin()->outputHeader();
echo '</head>';

// 输出body标签开头(包含皮肤属性)
echo '<body' . $this->getSkin()->getAttributes() . '>';

说明

MediaWiki 1.39开始弃用QuickTemplate::(get/html/text/haveData)传入headelement参数的用法,官方推荐直接拆分头部结构的输出:

  • 手动输出DOCTYPE、html标签,结合你已经获取的pageLanguage设置语言属性,同时补充文本方向dir属性(适配多语言排版)
  • 通过$this->getSkin()->outputHeader()生成原来headelement包含的meta标签、页面标题、样式链接、脚本等核心头部内容
  • 用$this->getSkin()->getAttributes()获取body标签的必要属性(如皮肤类名等),保持皮肤原有样式的兼容性

这样修改后,既符合MediaWiki新版本的规范,又不需要重构整个皮肤。

内容的提问来源于stack exchange,提问作者bblackmoor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 16:35:09