@goodman17

Как установить цель метрики на все партнерские ссылки?

Есть задача установить на сайте Wordpress на все партнерские ссылки цель Яндекс Метрики "Переход по ссылке". В точности, для отдельной ссылки это выглядит так:
< a href="/go/mvideo" onclick="ym(83804250, 'reachGoal', 'goshop'); return true;">М Видео< /a>

Вопрос: как я могу установить данную цель для всех своих партнерских ссылок с прификсом /go/. Возможно тут подойдет какой то хук в function.php..
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 1
scoffs
@scoffs
Fullstack | C# | Student
Вам потребуется добавить код, который будет обрабатывать все ссылки с префиксом /go/ и добавлять необходимый JavaScript-код для цели Яндекс Метрики.

Что-то типа этого:
function add_yandex_metric_goal() {
    if (is_singular()) {
        global $post;
        $content = $post->post_content;

        // Поиск всех ссылок с префиксом /go/
        preg_match_all('/<a href="\/go\/(.*?)"/', $content, $matches);

        // Добавление JavaScript-кода для цели Яндекс Метрики к найденным ссылкам
        if (!empty($matches[1])) {
            $goal_code = "ym(83804250, 'reachGoal', 'goshop'); return true;";
            $replacement = '<a href="/go/$1" onclick="' . $goal_code . '"';
            $content = preg_replace('/<a href="\/go\/(.*?)"/', $replacement, $content);

            // Обновление контента поста
            $post->post_content = $content;
            wp_update_post($post);
        }
    }
}
add_action('wp', 'add_yandex_metric_goal');


Приведенный код будет искать все ссылки с префиксом `/go/` на страницах постов или страниц WordPress и добавлять необходимый JavaScript-код для цели Яндекс Метрики.

Убедитесь, что замените 'ym(83804250, 'reachGoal', 'goshop'); return true;' на ваш фактический код цели Яндекс Метрики.

После добавления этого кода в functions.php и сохранения изменений, все партнерские ссылки с префиксом /go/ на вашем сайте должны быть обработаны и получить нужный JavaScript-код для цели Яндекс Метрики.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы