Введение
В первой части мы создали плагин Post Analytics: трекинг просмотров, база данных, REST API и админка со статистикой. Теперь добавим отображение количества просмотров в карточках постов на главной странице и в архивах — значок с иконкой глаза и числом.
Что нужно сделать
- Функция получения количества просмотров для поста
- Интеграция с темой: добавить «просмотры» в элементы меты
- Функция вывода (иконка + число)
- Стили для значка
Шаг 1: Функция get_view_count
В классе Post_Analytics_DB добавляем статический метод get_view_count($post_id, $days = 30). Он вызывает get_post_stats() и возвращает только unique_views. Это лёгкий способ получить число для вывода в шаблоне.
Шаг 2: Интеграция с темой Dekanpro
Тема Dekanpro выводит мету поста (автор, дата, категория) через массив элементов. Для каждого элемента вызывается функция dekanpro_entry_meta_{$item}(). Достаточно:
- Подключиться к фильтру
dekanpro_entry_meta_elementsи добавить в массив строкуviews. - Определить функцию
dekanpro_entry_meta_views(), которая выводит иконку и число просмотров.
Просмотры показываем только на главной, в архивах и поиске — в add_views_to_meta_elements проверяем is_home() || is_archive() || is_search().
Шаг 3: Вывод значка
Функция dekanpro_entry_meta_views() получает ID поста через get_the_ID(), вызывает Post_Analytics_DB::get_view_count($post_id, 30), выводит span с классом entry-meta-views, внутри — SVG-иконка глаза и число, отформатированное через number_format_i18n(). Даже при нуле просмотров значок отображается (показывает 0).
Шаг 4: Стили
Подключаем отдельный CSS-файл плагина только на главной, в архивах и поиске. Стили задают:
display: inline-flex,align-items: center,gap: 4px— иконка и число в ряд- Размер иконки, лёгкая прозрачность
- Поддержка тёмной темы
Структура нового файла
Класс Post_Analytics_Frontend в includes/class-post-analytics-frontend.php:
- Фильтр
dekanpro_entry_meta_elements— добавитьviews - Хук
init(приоритет 20) — определитьdekanpro_entry_meta_views - Хук
wp_enqueue_scripts— подключить CSS
Итог
Плагин остаётся самодостаточным: не требует правок темы. Интеграция через фильтры и стандартные хуки WordPress. Значок просмотров появляется в каждой карточке поста на главной и в архивах автоматически.
