Как добавить количество просмотров записей в WordPress?

Чтобы добавить счётчик просмотров записей в WordPress с использованием Bootstrap 5, нужно создать функцию для отслеживания просмотров каждой записи, а затем вывести эту информацию на страницах записей и в архивах.

Шаги для реализации:

  1. Добавление кода для подсчета просмотров
    Функция для добавления и сохранения количества просмотров в метаполе записей.
  2. Вывод количества просмотров в шаблоне
    Выводим количество просмотров на страницах записей и в архивах.
  3. Опционально: стилизация с помощью Bootstrap 5
    Добавляем красивые иконки и оформление счётчика.

1. Функция для подсчета просмотров

Добавьте следующий код в файл functions.php вашей темы WordPress:

// Функция для получения количества просмотров
function get_post_views($postID){
    $count_key = 'post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if($count == ''){
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
        return "0 просмотров";
    }
    return $count . ' просмотров';
}

// Функция для увеличения количества просмотров
function set_post_views($postID) {
    $count_key = 'post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if($count == ''){
        $count = 0;
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
    } else {
        $count++;
        update_post_meta($postID, $count_key, $count);
    }
}

// Удаляем функцию из основного запроса, чтобы избежать дублирования подсчетов
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );

Эта функция будет хранить количество просмотров каждой записи в метаполе post_views_count.

2. Увеличение количества просмотров при загрузке записи

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

// Увеличиваем количество просмотров записи при её просмотре
function track_post_views($post_id) {
    if (!is_single()) return; // Если это не одиночная запись, не увеличиваем счетчик
    if (empty($post_id)) {
        global $post;
        $post_id = $post->ID;
    }
    set_post_views($post_id);
}
add_action('wp_head', 'track_post_views');

3. Вывод количества просмотров

Теперь мы можем вывести количество просмотров на странице записи или на главной странице/в архивах.

Вставьте это в нужное место в файле single.php для вывода на странице записи:

<?php echo get_post_views(get_the_ID()); ?>

Для архива записей (например, в archive.php или index.php):

<div class="post-views">
    <i class="bi bi-eye"></i> <!-- Иконка глаз Bootstrap 5 -->
    <?php echo get_post_views(get_the_ID()); ?>
</div>

4. Стилизация с Bootstrap 5

Чтобы стилизовать количество просмотров с использованием Bootstrap 5, можно добавить иконку просмотра и стили:

<span class="badge bg-secondary">
    <i class="bi bi-eye"></i> <?php echo get_post_views(get_the_ID()); ?>
</span>

Не забудьте подключить иконки Bootstrap 5 в header.php, если еще не сделали это:

<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons/font/bootstrap-icons.css" rel="stylesheet">

5. Добавление стилей (опционально)

Добавьте несколько CSS-стилей для улучшения внешнего вида:

.post-views {
    font-size: 14px;
    color: #6c757d;
    margin-top: 10px;
}

Итог

Теперь у вас есть счётчик просмотров записей на WordPress, который сохраняет количество просмотров для каждой записи и выводит эту информацию с красивым оформлением через Bootstrap 5.