在MediaWiki中,可以访问使用其中一个魔术词{{NUMBEROFPAGES}}
创建的页面总数。有没有办法访问想要的页面的总数,红色链接的页面?有Special:WantedPages,如果我转到结果的最后一页,它有总数。它是仅在请求时发现,还是以与{{NUMBEROFPAGES}}
类似的方式访问该变量?
答案 0 :(得分:1)
这不包括在default magic words中,我也不知道会提供它的任何扩展。如果你不太关心性能,那么很容易做到:
global $wgHooks;
$wgHooks['LanguageGetMagic'][] = function ( &$magicWords, $langCode ) {
// 1 is for case-sensitive
$magicWords['wantedpages'] = [ 1, 'NUMBEROFWANTEDPAGES' ];
};
$wgHooks['MagicWordwgVariableIDs'][] = function ( &$customVariableIds ) {
$customVariableIds[] = 'wantedpages';
};
$wgHooks['ParserGetVariableValueSwitch'][] = function (
&$parser, &$cache, &$magicWordId, &$ret
) {
$db = wfGetDB( DB_REPLICA );
$ret = $db->selectRowCount(
[ 'pagelinks', 'page' ], // tables
'count(*)', //value
[ 'page_id' => null ], // conditions
__METHOD__,
[ 'GROUP BY' => [ 'pl_namespace', 'pl_title' ] ],
[ 'page' => [ 'LEFT JOIN', 'pl_namespace = page_namespace AND pl_title = page_title' ] ] // join conditions
);
};
请注意,这是极端切角机版本。如果您正在撰写扩展程序并希望正确执行此操作,请参阅the manual。