Я хотел загрузить определенные коды отслеживания 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>
)? Любая обратная связь будет принята с благодарностью.
Спасибо! Похоже, это путь, и я на полпути. Но я не уверен, понимаю ли я процедуру для вашего # 3. На странице 404 я написал ' Php get_header-nofound(); ?> 'вместо' php get_header(); ?> ', и это приводит к ошибке. Можете ли вы рассказать о «использовании заголовка как»? –
Нет Php get_header-nofound(); ?>, напишите php get_header ('nofound'); ?> – researcher
Да !!! Это сработало! Супер спасибо! :) –