Постепенно развивая текущий сайт, решил добавить функционал подсчета количества просмотров для статей. Добавить данный функционал можно используя плагины или написав собственное решение. В этом материале я расскажу о собственном решении.
Шаг 1. Создаем функцию подсчета просмотров
В самом коде я добавил пояснения в формате комментариев. Вам для внедрения требуется добавить следующий код в файл functions.php вашей темы:
function set_post_views($post_id) {
if (is_user_logged_in()) { // чтобы не считать собственные посещения добавим проверку
return;
}
$count_key = 'post_views_count'; // Название ключа для хранения количества просмотров
$count = get_post_meta($post_id, $count_key, true); // Получаем текущее значение счетчика
if ($count == '') {
$count = 0;
add_post_meta($post_id, $count_key, 1); // записываем в поле первое посещение
} else {
$count++; // если уже существует значение, то просто увеличиваем его
update_post_meta($post_id, $count_key, $count); // записываем новое увеличенное значение
}
}
Таким образом, функция создает поле post_views_count для записи и увеличивает его значение при каждом просмотре страницы.
Шаг 2. Увеличиваем счетчик при открытии статьи
Теперь необходимо вызвать функцию на странице записи.
Откройте файл вашего шаблона статьи и добавьте вызов функции:
while (have_posts()) :
the_post();
set_post_views(get_the_ID());
// вывод содержимого записи
endwhile;
Шаг 3. Создаем функцию получения количества просмотров
Для удобного вывода просмотров создадим отдельную функцию. Добавляем в functions.php следующий код:
function get_post_views($post_id) {
$count = get_post_meta($post_id, 'post_views_count', true); // Получаем значение счётчика
if ($count == '') {
return 0;
}
return $count;
}
Шаг 4. Выводим количество просмотров в шаблоне
Теперь можно вывести количество просмотров в любом месте шаблона.
Например:
<div class="post-views">
Просмотров: <?php echo get_post_views(get_the_ID()); ?>
</div>

Результат получился такой (возможно, что при вашем прочтении я уже поменяю местоположение элемента, но на момент написания все как на скриншоте):
Имейте ввиду, что если на сайте используется кеширование страниц, описанный выше способ может работать не совсем некорректно, т.к. обновление в реальном времени скорее всего будет работать не будет, но в рамках ситуации с небольшим сайтом или отсутствием необходимости иметь ежеминутно актуальную статистику это и не требуется.