首页 > 解决方案 > 如何在 Wordpress 中为每个网站页面添加单独的分析

问题描述

我们有一个 WordPress 安装,其位置作为单独的页面。

例如:mysite.com/colorado 和 mysite.com/alabama

我们需要为每一个单独的谷歌分析以及所有 mysite.com 的 1。

有没有办法使用 WordPress 插件来做到这一点,还是我们需要手动编写一些代码?

提前致谢!

标签: wordpresspluginsgoogle-analyticsanalytics

解决方案


如果我没记错的话,谷歌分析可以让你以这样的细分查看你的分析。也就是说,如果您确实需要单独的脚本,那么编程会相对容易。可能有一些插件可以做到这一点,但我不知道有什么特别的,尽管粗略的一瞥显示了像Header 和 Footer Scripts这样的插件允许您逐页添加脚本。

一些主题还允许您为每页/帖子添加 SEO/脚本设置。如果是这种情况,您可以打开每个页面并将每个脚本标签转储到“标题脚本”或类似部分中,并称之为好。(创世纪是一个这样做的主题的例子)。

如果没有,那么编程将相对简单。我会这样做:

add_action( 'wp_head', 'display_analytics_by_page', 1 );
function display_analytics_by_page(){
    // Default Script Code with individual UA codes replaced
    $script = '<!-- Global site tag (gtag.js) - Google Analytics -->
        <script async src="https://www.googletagmanager.com/gtag/js?id=[UA-CODE]"></script>
        <script>
          window.dataLayer = window.dataLayer || [];
          function gtag(){dataLayer.push(arguments);}
          gtag(\'js\', new Date());

          gtag(\'config\', \'[UA-CODE]\');
        </script>';

    // Array of UA codes by state
    $codes = array(
        'Alabama' => 'UA-123456789-1',
        'Oregon'  => 'UA-987654542-3',
        'Vermont' => 'UA-000000000-0'
    );

    // Get title of this page
    $title = get_the_title();

    // If this page title exists in the codes array, swap placeholder and echo it.
    if( isset($codes[$title]) ){
        echo str_replace( '[UA-CODE]', $codes[$title], $script );           
    }
}

我一路评论,但要点是放入“默认”脚本,但拉出 UA 代码。这仅在您需要在每个脚本中使用相同的确切脚本代码时才有效,否则您必须将每个脚本添加到$codes数组中。

然后创建一个由页面标题键入的 UA 代码(或完整脚本,如果需要)数组。

然后检查页面标题,如果存在,则拉入该代码并回显它。这是在wp_head挂钩上运行的,因此您只需将此代码放入您的functions.php(或类似的)文件中。


推荐阅读