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

MediaWiki三级嵌套transclusion中顶层页面显示二级页面名称诉求

MediaWiki三级嵌套转置场景下获取二级页面名称的需求

核心问题

在MediaWiki的三级嵌套页面转置结构中,需要让顶层页面显示二级页面的名称。

示例场景

创建了3个页面:3、2、Template:1,嵌套逻辑如下:

  • 页面3通过代码{{:2}}嵌入页面2
  • 页面2通过代码{{1}}嵌入Template:1
  • Template:1内包含调用当前页面名称的代码{{PAGENAME}}

期望结果:页面3显示2
实际结果:页面3显示3

已尝试操作

已测试多种实现方式,相关尝试记录在内部模板页面中。

最终业务目标

为每个diehot盒子添加对应编辑链接:在聚合多个diehot的页面中,每个diehot盒子的编辑链接需直接指向该diehot的专属编辑页面。diehot页面基于Dieshot-box模板构建,模板中包含编辑链接的代码逻辑。

使用环境

  • MediaWiki 1.35.3
  • Extension:ParserFunctions 1.6.0
  • Extension:Variables 2.5.1

解决方法

方案1:模板参数显式传递

通过在嵌套层级中主动传递页面名称参数,保留二级页面的上下文:

  1. 修改页面2的模板嵌入代码为:{{1|sourcepage={{PAGENAME}}}}
  2. 将Template:1中的{{PAGENAME}}替换为{{{sourcepage}}}

这样页面3加载时,页面2会把自身名称传给Template:1,最终顶层页面就能正确显示二级页面名称。

方案2:利用Variables扩展传递上下文

借助Variables扩展在二级页面存储名称,再在模板中读取:

  1. 在页面2中,嵌入Template:1之前添加代码:{{#vardefine:secondarypage|{{PAGENAME}}}}
  2. 将Template:1中的{{PAGENAME}}替换为{{#var:secondarypage}}

该方案通过全局变量传递上下文,无需修改模板参数结构,适合复杂嵌套场景。

针对diehot编辑链接的适配

结合上述方案,调整Dieshot-box模板的逻辑:

  1. 在每个diehot页面中,嵌入模板时传递自身名称:{{Dieshot-box|targetpage={{PAGENAME}}}}
  2. 在Dieshot-box模板中,将编辑链接部分修改为:[[{{{targetpage}}}|编辑]](若需直接生成编辑URL,可使用{{fullurl:{{{targetpage}}}|action=edit}})

这样每个diehot盒子的编辑链接就能精准指向对应的编辑页面。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 15:15:34