MediaWiki - 基于PageID进行搜索

时间:2018-01-12 13:19:23

标签: mediawiki mediawiki-api

我在工作中使用MediaWiki并创建知识库。我们已经完成了所有设置,但一个要求是在每个页面上都有唯一的标识符,然后可以在官方文档中引用它。我通过使用魔术词{{PAGEID}}来完成此操作,因此它已添加到每个页面的右下角。

另一项要求是能够根据此唯一编号查找页面,但在使用内置搜索功能时,无法找到该页面。

例如,主页面上有文字" Page ID:1"在右下角。在搜索" Page ID:1"什么都找不到,Wiki只给我创建页面的选项。

有谁知道如何搜索或搜索包含网页ID?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

global $wgHooks;
$wgHooks['SearchGetNearMatchBefore'][] = function ( array $allSearchTerms, &$titleResult ) {
    $searchTerm = $allSearchTerms[0];
    if ( preg_match( '/^id:\d+$/', $searchTerm ) ) {
        $pageId = (int)substr( $searchTerm, 3 );
        $titleResult = Title::newFromID( $pageId );
        return false;
    }
};
当您在搜索框中输入123时,

将跳转到ID为id:123的网页。看起来似乎是一种使用搜索的愚蠢方式。