如何在 MediaWiki 中获取当前页面 URL

Nee*_*eel 4 php mediawiki

我正在尝试获取当前页面的 url 并将其存储到我的自定义皮肤模板中的变量中。我正在尝试这样做,以便我可以将此网址用于其他目的。我正在尝试做这样的事情

function currentpageurl() //Some Custom function
{
    $url= [something that can get current page's url in mediawiki and store it to this variable]
    .....use the $url variable for other purposes....
    ......
    .....
}
Run Code Online (Sandbox Code Playgroud)

Mediawiki 是否有一种方法可以识别当前页面的 url 或者是我查找当前页面的唯一选择是使用这种方法?

$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
Run Code Online (Sandbox Code Playgroud)

Ilm*_*nen 5

如果你正在写一个QuickTemplate子类的皮肤,你可以得到一个标题为使用当前页的对象$this->getSkin()->getTitle()

一旦你有了 Title 对象,你就可以调用getLinkURL()它来获取页面的 URL。(您可能想像getPrefixedURL()Ilya 建议的那样使用,因为它只会为您提供页面名称的 URL 编码版本。)或者,Linker::link()如果您想生成标准的 wikilink 样式的链接而无需自己弄乱网址。

事实上,这$this-getSkin()是从皮肤模板访问“请求全局”MediaWiki 对象(如当前 Title、WebRequestUserLanguageOutputPage等)的通用方法。具体来说,Skin类实现IContextSource接口,该接口提供对所有这些对象的访问。