wordpress — код PHP в зависимости от ответа сервера

Я хотел загрузить определенные коды отслеживания Google Analytics в зависимости от ответа HTTP нашего сервера для конкретной страницы. Если страница в порядке (HTTP-ответ — 200), код должен быть:

 <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>)? Любая обратная связь будет принята с благодарностью.

2

Решение

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

Следуй этим шагам

1. Создайте страницу 404, например 404.php

2. Создайте новый заголовок, такой как header-nofound.php,

3. В вашем 404.php используйте заголовок как <?php get_header('nofound'); ?>

4.В вашем header-nofound.php вы можете поместить нужный вам код ga в случае 404,

Спасибо. Это может помочь вам

1

Другие решения

Других решений пока нет …