PHP代码取决于服务器响应

时间:2015-07-20 05:27:16

标签: php wordpress analytics

我想加载特定的Google Analytics跟踪代码,具体取决于我们服务器对特定网页的HTTP响应。如果页面正常(HTTP响应为200),则代码应为:

`$tid = $_GET['tid'];` is another id

但如果HTTP响应是404或410(找不到页面),我希望代码为:

 <script>
   (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
   (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
   m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
   })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
   ga('create', 'UA-XXXXXXXX-X', 'auto');
   ga('set', 'forceSSL', true);
   ga('require', 'displayfeatures');
   ga('send','pageview');
 </script>

注意倒数第二行的差异。

此代码保存在我们的header.php文件中(我们使用的是Wordpress),该文件适用于所有页面,包括404页面。为了让系统为404页面加载不同的代码,这就是我所做的:

 <script>
   (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
   (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
   m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
   })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
   ga('create', 'UA-XXXXXXXX-X', 'auto');
   ga('set', 'forceSSL', true);
   ga('require', 'displayfeatures');
   ga('send','pageview','/404.html?page=' + document.location.pathname + document.location.search + '&from=' + document.referrer);
 </script>

我是这方面的新手,我似乎无法做对。我究竟做错了什么?我把它放在header.php上(就在<script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-XXXXXXXX-X', 'auto'); ga('set', 'forceSSL', true); ga('require', 'displayfeatures'); ga( <?php $HTTPStatus = $_SERVER["REDIRECT_STATUS"]; if ($HTTPStatus==404) ['send','pageview','/404.html?page=' + document.location.pathname + document.location.search + '&from=' + document.referrer];) elseif ($HTTPStatus==410) ['send','pageview','/404.html?page=' + document.location.pathname + document.location.search + '&from=' + document.referrer];) else ['send','pageview'];) ?> </script> 之前)是否正确?任何反馈将不胜感激。

1 个答案:

答案 0 :(得分:1)

我认为这个是好主意。

请按照以下步骤操作

1.创建404页面,如404.php

2.创建新标题,例如header-nofound.php,

3.在404.php中,使用标题为{{1}}

4.在你的header-nofound.php中,你可以把你想要的ga代码放在404的情况下,

谢谢。这可能对你有帮助