Модуль Счетчик просмотров считает просмотры отдельных записей WordPress.
Проще говоря, модуль увеличивает число просмотров каждый раз, когда посетитель открывает страницу записи.
Сам модуль только считает и хранит просмотры. Чтобы посетители видели это число на сайте, нужно отдельно включить вывод элемента просмотров в нужном мета-блоке темы.
Как работает модуль
Модуль хранит количество просмотров в мета-поле записи views.
Обычно просмотр засчитывается при открытии отдельной записи. Счетчик не увеличивается в служебных сценариях, где такой подсчет не нужен, например в админке, preview, feed, embed и других технических запросах, и считает просмотры только у опубликованных записей.
Где выводятся просмотры на сайте
Сам по себе модуль не добавляет число просмотров в произвольное место страницы. Он только считает и сохраняет значение.
Чтобы показать просмотры на сайте, нужно включить элемент просмотров в мета-блоке, где он доступен.
В теме он может использоваться, например:
- в метаинформации карточек записей как элемент Просмотры
- в метаинформации отдельной записи как элемент Счетчик просмотров
Если счетчик работает, но вы не видите просмотры на странице, обычно проблема именно в том, что вывод элемента не включен в настройках шаблона.
Настройки в кастомайзере
Все настройки модуля находятся в разделе Внешний вид > Настроить в разделе Модули > Счетчик просмотров.
Включение модуля
Настройка Включить счетчик просмотров полностью включает или выключает модуль.
Если настройка выключена, просмотры не увеличиваются ни в обычном режиме, ни через AJAX.
Для кого считать просмотры
Настройка Считать просмотры для определяет, для каких посетителей нужно считать просмотры:
- Все
- Гости
- Пользователи
Это удобно, если вы хотите, например, считать только обычных читателей без учета своей команды или, наоборот, учитывать только авторизованных пользователей в закрытом проекте.
Исключение ботов
Настройка Исключать ботов исключает типовых ботов и краулеров из подсчета просмотров.
Проверка идет по User-Agent. Обычно этого достаточно, чтобы отсечь поисковых роботов, сервисных краулеров и ботов предпросмотра из мессенджеров и соцсетей.
Если вам важно видеть более реалистичную статистику просмотров, эту настройку обычно стоит оставить включенной.
AJAX-подсчет
Настройка Использовать AJAX-подсчет включает отдельный запрос после загрузки страницы для увеличения счетчика.
Обычно эта настройка нужна, если:
- у вас включено кеширование страниц
- обычный PHP-подсчет не успевает срабатывать
- просмотры не растут при реальных открытиях записи
Если кеширования страниц нет, чаще всего достаточно обычного режима без AJAX.
Что именно считается просмотром
С точки зрения модуля просмотром считается запрос к отдельной записи, который прошел внутренние проверки модуля.
То есть модуль не анализирует:
- сколько времени человек был на странице
- долистал ли он текст до конца
- был ли это качественный визит
- открывалась ли страница в новой вкладке надолго
Если запрос подходит под правила модуля, счетчик увеличивается на 1.
Если просмотры не растут, в первую очередь проверьте:
- включен ли модуль
- открывается ли именно отдельная запись, а не архив
- не мешает ли кеширование страниц
- нужен ли вам AJAX-режим
- включен ли вывод элемента просмотров в шаблоне, если вы ожидаете увидеть его на странице
Хуки
Хуки позволяют разработчику изменить поведение модуля без правки файлов темы. Подробнее о том, как работают хуки и где лучше размещать такой код, читайте в отдельной статье.
wpbox/views_counter/is_enabled
Позволяет принудительно включить или выключить модуль счетчика просмотров.
add_filter( 'wpbox/views_counter/is_enabled', function( $enabled ) {
if ( is_user_logged_in() && current_user_can( 'manage_options' ) ) {
return false;
}
return $enabled;
} );
wpbox/views_counter/meta_key
Позволяет изменить имя meta-поля, в котором хранятся просмотры.
add_filter( 'wpbox/views_counter/meta_key', function() {
return 'post_views_count';
} );
wpbox/views_counter/is_countable
Позволяет отменить или разрешить подсчет просмотра для конкретной записи.
add_filter( 'wpbox/views_counter/is_countable', function( $should_count, $post ) {
if ( has_category( 'news', $post ) ) {
return false;
}
return $should_count;
}, 10, 2 );
wpbox/views_counter/views_formatted
Позволяет изменить формат отображения количества просмотров.
add_filter( 'wpbox/views_counter/views_formatted', function( $formatted ) {
return $formatted . ' просмотров';
} );
wpbox/views_counter/increment
Срабатывает после увеличения счетчика просмотров записи.
add_action( 'wpbox/views_counter/increment', function( $post_id, $views ) {
error_log( 'Post ' . $post_id . ' views: ' . $views );
}, 10, 2 );