2015-07-20 3 views
2

Я хотел загрузить определенные коды отслеживания Google Analytics в зависимости от ответа HTTP-сервера нашего сервера на конкретную страницу. Если страница нормально (ответ HTTP 200), код должен быть: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('send','pageview'); 
</script> 

Но если ответ 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','/404.html?page=' + document.location.pathname + document.location.search + '&from=' + document.referrer); 
</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(
<?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> 

Я новичок на этом, и я не могу показаться, чтобы получить это право. Что я делаю не так? Действительно ли это подходит для меня на header.php (как раз перед </head>)? Любая обратная связь будет принята с благодарностью.

ответ

1

Я думаю, что эта идея будет хорошей идеей.

Выполните следующие действия

1.Create 404 странице, как 404.php

2.Create новый заголовок, как, заголовок-nofound.php,

3.In ваш 404.php, использовать заголовок в качестве <?php get_header('nofound'); ?>

4 вашего заголовка-nofound.php, вы можете поместить код га вы хотите в случае 404,

Thanks.this может помочь вам

+0

Спасибо! Похоже, это путь, и я на полпути. Но я не уверен, понимаю ли я процедуру для вашего # 3. На странице 404 я написал ' 'вместо' ', и это приводит к ошибке. Можете ли вы рассказать о «использовании заголовка как»? –

+0

Нет , напишите researcher

+0

Да !!! Это сработало! Супер спасибо! :) –

Смежные вопросы