Как создать простую аналитику данных в WordPress

В современном веб-разработке аналитика данных сайта становится важнейшим инструментом для понимания поведения пользователей и оптимизации контента. В этой статье мы разберем, как с помощью WordPress и базового кода создать простую аналитику данных непосредственно на вашем сайте. Это полезно, если вы хотите получать статистику без сложных внешних сервисов, полностью контролировать данные и при этом не перегружать сайт тяжелыми плагинами.

Почему встроенная аналитика данных в WordPress важна для сайта

Часто владельцы сайтов используют Google Analytics или Яндекс.Метрику для отслеживания посещений. Однако эти сервисы не всегда дают полное понимание, особенно если нужны данные именно из базы сайта — например, статистика по просмотрам отдельных постов, анализ активности пользователей, частота взаимодействия с формами или элементами.

Встроенная аналитика позволяет:

  • Отслеживать конкретные действия пользователей по своим правилам.
  • Хранить данные локально, без риска потери информации.
  • Гибко настраивать отчеты под свои задачи.

Для реализации этого можно использовать как готовые плагины, так и собственный код — рассмотрим оба варианта.

Использование плагинов для аналитики в WordPress

Плагин WP Statistics

WP Statistics — популярный плагин, который собирает данные о посетителях, просмотрах страниц, поисковых запросах и многое другое. Он полностью работает на стороне сайта, не передавая данные внешним сервисам.

Основные возможности:

  • Отчеты по географии посетителей.
  • Статистика по рефералам.
  • Просмотры страниц и уникальные пользователи.

Установка:

wp plugin install wp-statistics --activate

После установки в административной панели появится раздел с отчетами и настройками.

Плагин WPDataTables для визуализации данных

Если у вас уже есть собранные данные в базе, WPDataTables поможет визуализировать их в виде таблиц и графиков. Плагин поддерживает работу с SQL-запросами, что удобно для создания кастомных отчетов.

Преимущества:

  • Интерактивные таблицы с фильтрами.
  • Графики и диаграммы.
  • Поддержка редактирования данных из админки.

Установка и настройка аналогична стандартному процессу для плагинов WordPress.

Создание собственной аналитики с помощью кода на WPData

Сбор и хранение данных о просмотрах постов

Для начала можно реализовать простой счетчик просмотров, который будет сохранять количество просмотров каждого поста в метаполе. Это позволит анализировать популярность контента без сторонних сервисов.

Добавим функцию для увеличения счетчика:

function wpdata_increment_post_views($post_id) {
    $count = get_post_meta($post_id, '_wpdata_post_views', true);
    $count = $count ? intval($count) + 1 : 1;
    update_post_meta($post_id, '_wpdata_post_views', $count);
}

Чтобы считать просмотры, вызовите эту функцию в файле single.php или через хук:

add_action('wp_head', function() {
    if (is_singular('post')) {
        wpdata_increment_post_views(get_the_ID());
    }
});

Теперь данные по просмотрам хранятся в базе, и их можно использовать для отчетов.

Вывод отчета по популярным постам в админке

Чтобы видеть статистику прямо в панели управления, создадим страницу с таблицей популярных постов.

function wpdata_add_popular_posts_page() {
    add_menu_page(
        'Популярные посты',
        'Популярные посты',
        'manage_options',
        'wpdata-popular-posts',
        'wpdata_render_popular_posts'
    );
}
add_action('admin_menu', 'wpdata_add_popular_posts_page');

function wpdata_render_popular_posts() {
    $args = array(
        'post_type' => 'post',
        'posts_per_page' => 20,
        'meta_key' => '_wpdata_post_views',
        'orderby' => 'meta_value_num',
        'order' => 'DESC',
    );
    $query = new WP_Query($args);
    echo '<h1>Топ 20 популярных постов</h1>';
    echo '<table class="wp-list-table widefat fixed striped"><thead><tr><th>Заголовок</th><th>Просмотры</th></tr></thead><tbody>';
    if ($query->have_posts()) {
        while ($query->have_posts()) {
            $query->the_post();
            $views = get_post_meta(get_the_ID(), '_wpdata_post_views', true) ?: 0;
            echo '<tr><td><a href="'.get_edit_post_link().'">'.get_the_title().'</a></td><td>'.intval($views).'</td></tr>';
        }
    } else {
        echo '<tr><td colspan="2">Постов не найдено</td></tr>';
    }
    echo '</tbody></table>';
    wp_reset_postdata();
}

Этот простой отчет поможет быстро оценить, какой контент наиболее популярен на сайте.

Расширение: аналитика по действиям пользователей через AJAX

Если нужно собирать данные о пользовательских действиях (например, клики по кнопкам), можно использовать AJAX и REST API WordPress.

Пример обработки события клика для записи в базу:

add_action('wp_ajax_wpdata_record_click', 'wpdata_record_click_handler');
add_action('wp_ajax_nopriv_wpdata_record_click', 'wpdata_record_click_handler');

function wpdata_record_click_handler() {
    $element = isset($_POST['element']) ? sanitize_text_field($_POST['element']) : '';
    if (!$element) {
        wp_send_json_error('Отсутствует элемент');
    }
    global $wpdb;
    $table = $wpdb->prefix . 'wpdata_clicks';
    $wpdb->insert($table, [
        'element' => $element,
        'user_ip' => $_SERVER['REMOTE_ADDR'],
        'clicked_at' => current_time('mysql'),
    ]);
    wp_send_json_success('Клик зафиксирован');
}

Для этого потребуется создать таблицу в базе данных для хранения кликов. Пример создания таблицы при активации плагина или темы:

function wpdata_create_clicks_table() {
    global $wpdb;
    $table = $wpdb->prefix . 'wpdata_clicks';
    $charset_collate = $wpdb->get_charset_collate();
    $sql = "CREATE TABLE $table (
        id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
        element VARCHAR(255) NOT NULL,
        user_ip VARCHAR(45) NOT NULL,
        clicked_at DATETIME NOT NULL,
        PRIMARY KEY(id)
    ) $charset_collate;";
    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    dbDelta($sql);
}
register_activation_hook(__FILE__, 'wpdata_create_clicks_table');

На клиентской стороне можно добавить JS для отправки AJAX-запроса на сервер при клике:

document.querySelectorAll('.track-click').forEach(el => {
    el.addEventListener('click', () => {
        fetch(wpdata_ajax_object.ajax_url, {
            method: 'POST',
            headers: {'Content-Type': 'application/x-www-form-urlencoded'},
            body: new URLSearchParams({
                action: 'wpdata_record_click',
                element: el.getAttribute('data-element')
            })
        }).then(response => response.json()).then(data => {
            if(data.success) {
                console.log('Клик зафиксирован');
            }
        });
    });
});

Выводы и рекомендации по созданию собственной аналитики данных

Создание простой аналитики на WordPress — вполне реальная задача, которая позволяет глубже понять поведение пользователей и управлять сайтом эффективнее. Важно:

  • Определить, какие именно данные нужны для анализа.
  • Использовать метаполя и кастомные таблицы для хранения статистики.
  • Применять AJAX и REST API для динамического сбора данных.
  • Визуализировать данные через админку или на фронтенде для удобства.

Использование готовых плагинов, таких как WP Statistics и WPDataTables, существенно ускоряет процесс, но при необходимости можно легко дополнить функционал собственным кодом, адаптированным под задачи вашего сайта.

Как создать автоматический импорт данных в WordPress с WPData и OmniVideo
09.04.2026
Как создать эффективный автообновляемый отчет с QR-кодом в WordPress
02.04.2026
Как создать и использовать собственный тип данных в WordPress
22.02.2026
Как создать автообновляемые отчеты в WordPress с WPData
09.02.2026
Как создать свой шорткод для вывода данных в WordPress
22.11.2025