Частенько возникает потребность анализировать сайт, проверять посещения, следить за пользовательскими факторами. Это необходимо для улучшения сайта, лучшего понимания его устройства и SEO. В случае с WordPress проблем с подключением Яндекс Метрики или Google Analytics практически нет. Можно установить плагины, которые автоматически добавят необходимое, можно просто внести код в нужный файл. Лично предпочитаю пользовательский код вынести в отдельный плагин, но сегодня расскажу, как это сделать через файл функций.
P. S. Куда более эффективный и правильный способ – вынесение кода в отдельный плагин. На производительности сайта это никак не скажется, позволит удобнее работать, к тому же ваш код не будет зависеть от темы. Все, что напрямую не завязано на тему, лучше выносить в плагин. И сия задача далеко не тяжела, но пока что можно ограничиться тем, что рассказал здесь.
Добавляем Метрику или Google Anaytics в functions.php
Давайте сначала разберемся, где взять счетчики. Это задача простая, здесь требуется только зарегистрироваться и получить код. Я не буду описывать, как это сделать. Описание есть в справке на официальных сайтах: https://metrika.yandex.ru/ и https://analytics.google.com/ В общем, получение кода проблем не составит. А лишнее пустословие ни к чему.
Вам же важно подключить аналитику именно через functions.php. Пора рассказать как это сделать, но для начала разжую, в каких случаях реально требуется использовать данный метод:
Вы не желаете использовать лишние плагины. Напрасно, модульность — удобная вещь, но порой перегружены ненужными функциями либо работают не так, как ожидали. Причина уважительная. Но нет никакой разницы, добавите вы пользовательские функции в functions.php или вынесете в плагин, нагрузка будет одинаковой.
Нет желания захламлять header.php или footer.php. Вполне объективная причина. Пак отдельный функций перенести проще, чем выковыривать отдельные фрагменты из разных файлов. Лучше в шаблоны не добавлять ничего лишнего.
Есть дочерняя тема. Весьма распространенная причина. Создание дочерней темы очень важно, помогает уберечь от порчи структуры сайта при обновлениях, потери стилей. Но не всегда в дочернюю тему переносятся файлы шапки или подвала.
Просто хочется позаморачиваться. Самая уважительная причина из всех. Сам такой.
Основные причины перечислил, пришло время добавлять Метрику или Аналитику через functions.php
Добавление Яндекс Метрики или Google Analytics в WordPress
Вообще, идеи подобных текстов рождаются, когда вдруг обнаруживаю, что есть кое-какая информация, но в сети об этом почему-то не рассказали. Даже удивительно, ведь встроить Метрику или Analytics через functions.php приходит в голову часто (но встройка в виджеты более распространенное явление). Конечно, опытный пользователь WordPress проблем в этом не увидит, а неопытного отправят… за плагином.
В общем, есть простое решение — хуки (крючки). Они позволяют избежать написания сложных функций, не плодить исполняемые файлы и не заморачиваться. Достаточно указать нужный hook и система поймет, куда нужно встроить код.
Встраивать системы аналитики предпочитают в раздел head. Многие рекомендуют в подвал, но тогда падает качество сбора информации, ведь “footer” прогружается позже “head”. Потому, будем рассматривать на примере встраивания в head.
Встраиваем Метрику через functions.php
В первую очередь добавляем счетчик и получаем код. Не забудьте включить Вебвизор, если нужен.
Открываем файл functions.php темы и добавляем следующие строки (не забудьте вставить свой счетчик, начинается он со строки — Yandex.Metrika counter –, заканчивается строкой — /Yandex.Metrika counter –:
add_action('wp_head', 'wp_metrikass');
function wp_metrikass() {
?>
<!-- Yandex.Metrika counter -->
<script type="text/javascript" >
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();
for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(01234567, "init", {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true,
webvisor:true
});
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/53708614" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
<?php }
Разберем по порядку.
Функция add_action добавляет определенное действие посредством использования хука (крючка). То бишь, wp_head – хук, который определяет, где будет совершено действие, в данном случае в разделе — head – /head, добавленное мной «wp_metrikass» – функция, которую я определю далее, ее название должно быть уникальным, в противном случае следует ожидать конфликтов, потому обзывайте изощреннее. Не забывайте перед началом кода ставить тег:
?>
это завершит блок php. После вставки скрипта Метрики, который начинается со строки — Yandex.Metrika counter — и завершается строкой — /Yandex.Metrika counter — введите:
<?php
и поставьте «}», чтобы завершить функцию. Код метрики скопируйте свой. Он будет выведен после создания счетчика.
Готово, Метрика добавлена через functions.php. Кстати, если решили вставлять код через подвал, используйте хук wp_footer вместо wp_head. В таком случае функция активируется при подгрузке подвала.
Встраиваем Google Analytics через functions.php
Есть ли в данном случае серьезные отличия? Конечно нет, принцип совершенно тот же. Создаем действие, указываем хук wp_head, создаем новую функцию. Блок выше сработает и для Аналитики, только создайте новую функцию, иначе конфликты гарантированы. Для примера выкладываю код:
add_action('wp_head', 'wp_analyticass');
function wp_analyticass() {
?>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-*********-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-*********-1');
</script>
<?php }
Все то же самое, главное, изощренно обозвать функцию, добавить код своего счетчика, который начинается со строки — Global site tag (gtag.js) – Google Analytics — и заканчивается строкой /script, после чего открыть блок php и скобкой “}” завершить функцию. Никаких сложностей вызвать не должно. Принцип не поменялся.
Дополнительные рекомендации
Создавайте функции только с уникальным названием, чтобы вероятность того, что окажутся в других плагинах или движке, сводилась к нулю. Как видите, добавлять счетчики через файл functions.php довольно легко. Пользуйтесь. Это гораздо проще, чем редактирование файлов темы. Конечно, можно добавлять код через виджеты, но приоритет загрузки из них задать труднее. И уникальную функцию создать тоже не получится, потому, предпочитаю использовать такой принцип.
Спасибо)
Рад был помочь!
Полезная статья. Надо таким способом будет и себе метрику поставить
Спасибо за отклик. Попробуйте лучше внести этот код в собственный плагин, так надёжнее. И код не будет зависеть от таких вещей, как смена темы. Ну и, соответственно, инструкция на тему как создать собственный плагин.