Цели метрики и Гугл на кнопку зашитую в тему
-
Добрый день.
Я только начинаю разбираться с Вордпресс. И прошу помощи у знающих людей.
Дано: сайт вордпресс. тема: RARA Business
На первом экране главной страницы есть активная кнопка с тэгом «tel».
Необходимо повесить отслеживание цели яндекс метрики и гугл аналитики, но проблема в том, что редактирование кнопки средствами редактора темы, не даёт возможность вставить туда код. А поиск в файлах по ДИВ и СПАН ничего не дал. Помогите пожалуйста, как мне отредактировать хтмл код ссылки данной кнопки?Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]
-
активная кнопка с тэгом «tel».
Скорее всего эта кнопка к теме отношения не имеет и создана отдельным плагином. Выясните каким и в файлах этого плагина ищите её код
Скорее всего эта кнопка к теме отношения не имеет и создана отдельным плагином.
Текст кнопки и сама ссылка редактируются Настройка ▸ Frontpage Settings
Banner Section
https://postimg.cc/0rFQ98cF — скриншот
Вроде бы все плагины перебрал, не получается. =(Вам необходимо создать внешнюю функцию на jQuery, которая будет реагировать на событие нажатия кнопки. Либо подключаем внешний js, либо, если уже существует какой-нибудь script.js, добавляем в него такой код:
jQuery(document).on('ready', function() { //если данная строка есть, не добавляем $('.btn-holder').on('click', function ( ) { ym(XXXXXXXX, 'reachGoal', 'target_name'); return true; }); }); //если первая строка есть, не добавляем //For GA $('.btn-holder').on('click', function ( ) { ga('send', 'event', { eventCategory: 'Outbound Link', eventAction: 'click', }); });
Конечно, может где-то ошибся, но без игрищ с кодом у меня отслеживание настроить еще не получалось.
Конфликт, переменная $ уже используется.
Извините, но в скриптах я вообще ноль.
Я нашел в файле template-functions.php место где формируется эта ссылка:<div class="btn-holder wow fadeInUp" data-wow-duration="1s" data-wow-delay="0.7s"> <?php if ( $link_one_label ) echo '<a href="'. esc_url( $link_one_url ) .'" class="btn-free-inquiry"><i class="fa fa-edit"></i>'. esc_html( $link_one_label ) .'</a>'; if ( $link_two_label ) echo '<a href="'. esc_url( $link_two_url ) .'" class="btn-view-service">'. esc_html( $link_two_label ) .'</a>'; ?> </div>
Но вставить сюда почему то не получается =(
В тот файл вообще ничего не нужно вставлять. Это отдельная функция и она должна быть вынесена во вне. Желательно вообще делать в рамках дочерней темы или собственного плагина.
Переменных $ может быть множество. И такой результат говорит лишь о том, что вставили не туда. Плюс ко всему, это jQuery код. В php файл его вставлять можно только создав функцию, содержащую в себе скрипт. Так делать не стоит.
Смотрите порядок действий.
В файле functions.php создаете такую функцию:
1. Если используете дочернюю тему.add_action('wp_enqueue_scripts', 'my_theme_scripts'); function my_theme_scripts() { wp_enqueue_script('myscriptass', get_stylesheet_directory_uri() . '/assets/js/myscriptass.js', array( 'jquery' ), true); }
2. Если вносите изменения прямо в тему.
add_action('wp_enqueue_scripts', 'my_theme_scripts'); function my_theme_scripts() { wp_enqueue_script('myscriptass', get_template_directory_uri() . '/assets/js/myscriptass.js', array( 'jquery' ), true); }
Теперь, по адресу assets/js создаете файл myscriptass.js. Можете указать другой путь и другое название файла.
Теперь вносите тот код в новый файл в таком виде:jQuery(document).on('ready', function() { $('.btn-holder').on('click', function ( ) { ym(XXXXXXXX, 'reachGoal', 'target_name'); return true; }); //For GA $('.btn-holder').on('click', function ( ) { ga('send', 'event', { eventCategory: 'Outbound Link', eventAction: 'click', }); }); });
Сохраняете файл, если есть плагины кеширования и минификации js, то очищайте кеш. Проверяйте. Дальше будем думать, ошибки вполне возможны. По крайней мере GA я подключал нечасто. С метрикой проблем практически нет.
ЗЫ. ym -функция для нового счетчика метрики, если у вас старая метрика, то лучше обновить.- Ответ изменён 5 лет, 5 месяцев назад пользователем ren334.
Уважаемый Ren334, спасибо что пытаетесь помочь мне.
Сделал как Вы сказали. Обновил счетчик. Добавил в конце файла functions.php (в папке темы) второй вариант кода. Создал отдельный файл /js/myscriptass.js с кодом.
При вызове консоль показывает такую же ошибку как в прошлый раз.myscriptass.js?ver=1:2 Uncaught TypeError: $ is not a function at HTMLDocument.<anonymous> (myscriptass.js?ver=1:2) at HTMLDocument.dispatch (jquery.js?ver=1.12.4:3) at HTMLDocument.r.handle (jquery.js?ver=1.12.4:3) at Object.trigger (jquery.js?ver=1.12.4:3) at Object.a.event.trigger (jquery-migrate.min.js?ver=1.4.1:2) at a.fn.init.triggerHandler (jquery.js?ver=1.12.4:3) at Function.ready (jquery.js?ver=1.12.4:2) at HTMLDocument.K (jquery.js?ver=1.12.4:2)
П.С. Мне б хотя бы метрику повесить, я уже совсем растерялся.
Попробуйте добавить доллар
jQuery(document).on('ready', function($) {
и далее по тексту
Или все
$
в коде заменить наjQuery
- Ответ изменён 5 лет, 5 месяцев назад пользователем Юрій.
потому что код неправильный.
замените$
наjQuery
в файле скрипта.замените $ на jQuery в файле скрипта.
Спасибо, помогло. Огромное спасибо всем за помощь. Вы лучшие.
Да, видимо какой-то конфликт в библиотеке, у меня такой код отлично работает. Только я делал его для отслеживания событий в Caldera Forms, но принцип тот же.
Да, видимо какой-то конфликт в библиотеке, у меня такой код отлично работает.
да нет конфликтов.
у вас, видимо, jquery не «родная», а с какого-нибудь cdn.да нет конфликтов.
у вас, видимо, jquery не «родная», а с какого-нибудь cdn.В том-то и дело, что тот сайт, где 3.3.1 подключал, работает. Но и другой сайт, с родным jQuery, тоже нормально пашет. Но ладно, сейчас проверил, если использовать jQuery, то все нормально, проблем нет. Впредь буду применять именно jQuery.
- Ответ изменён 5 лет, 5 месяцев назад пользователем ren334.
- Тема «Цели метрики и Гугл на кнопку зашитую в тему» закрыта для новых ответов.