事实证明,这比我预期的要困难得多。
有一个Google Analytics(分析)集成扩展程序:
但是对于Google Analytics(分析)的全球站点标签版本,它会将您引向HeadScript扩展名:
这里的问题是下载链接(http://downloads.jingames.net/mediawiki/HeadScript.zip
)看起来有些晦涩,文档中提到了一个错误。
我还在Mediawiki网站上回顾了此讨论:
但这很有说服力,没有太多表现。
Google Analytics(分析)摘要如下:
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TRACKING_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'TRACKING_ID');
</script>
我希望通过更新LocalSettings.php
配置文件中的设置来插入它。
谢谢!
答案 0 :(得分:0)
我找到了一种使用LocalSettings.php
设置将标签插入$wgHooks
的方法,如下所示:
只需用您的Google Analytics(分析)跟踪ID替换TRACKING_ID
(在两个位置中)并将其粘贴在LocalSettings.php
的底部即可:
$wgHooks['BeforePageDisplay'][] = function( OutputPage &$out, Skin &$skin ) {
$code = <<<HTML
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TRACKING_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'TRACKING_ID');
</script>
HTML;
$out->addHeadItem( 'gtag-insert', $code );
return true;
};
答案 1 :(得分:0)
这是一篇很老的帖子,但对于其他可能遇到这种情况的人,我已经通过结合其他示例找到了一个可能的解决方案。
我以Tom的代码为例,替换了google analytics extension中的对应变量。
旧:
...
public static function onSkinAfterBottomScripts( Skin $skin, &$text = '' ) {
...
新:
...
public static function onBeforePageDisplay( OutputPage &$out, Skin $skin ) {
...
然后将所有提到的 $text
替换为 $code
,在第 14、24、31、54 和 59 行有 5 个。
然后在 return true;
上方的解析器函数的末尾,在第 61 行插入以下代码。
$out->addHeadItem( 'gtag-insert', $code );
旧:
...
$wgHooks['SkinAfterBottomScripts'][] = 'GoogleAnalyticsHooks::onSkinAfterBottomScripts';
...
新:
...
$wgHooks['BeforePageDisplay'][] = 'GoogleAnalyticsHooks::onBeforePageDisplay';
...
如果一切顺利,您将看到 googleAnalytics extension script in the head element 而不是 within the body。我将尝试联系扩展程序的创建者/贡献者,看看它是否可以更改或询问为什么它已经不是这样了。