如何在我的Mediawiki Wiki页面中插入Google Analytics(分析)摘要?

时间:2019-07-03 03:43:04

标签: google-analytics mediawiki

事实证明,这比我预期的要困难得多。

有一个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配置文件中的设置来插入它。

谢谢!

2 个答案:

答案 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中的对应变量。

  1. 更改 googleAnalytics.hooks.php 第 9 行中的钩子。

旧:

...
public static function onSkinAfterBottomScripts( Skin $skin, &$text = '' ) {
...

新:

...
public static function onBeforePageDisplay( OutputPage &$out, Skin $skin ) {
...
  1. 然后将所有提到的 $text 替换为 $code,在第 14、24、31、54 和 59 行有 5 个。

  2. 然后在 return true; 上方的解析器函数的末尾,在第 61 行插入以下代码。

$out->addHeadItem( 'gtag-insert', $code );
  1. 最后进入 googleAnalytics.php 第 52 行(文件底部)并替换钩子调用以使用新钩子。

旧:

...
$wgHooks['SkinAfterBottomScripts'][] = 'GoogleAnalyticsHooks::onSkinAfterBottomScripts';
...

新:

...
$wgHooks['BeforePageDisplay'][] = 'GoogleAnalyticsHooks::onBeforePageDisplay';
...

如果一切顺利,您将看到 googleAnalytics extension script in the head element 而不是 within the body。我将尝试联系扩展程序的创建者/贡献者,看看它是否可以更改或询问为什么它已经不是这样了。