Главная
Wordpress
Количество просмотров записи WordPress
  • 07 Апр 2015г
  • 1340
  • 12
  • Рубрика: Wordpress

Количество просмотров записи WordPress

Колличество прсмотров

Доброго времени суток. 🙂

Начал писать статью, она будет следующей после этой, про сортировку записей по просмотру и хотел сделать отсылку на эту статью, но понял, что я ее еще не публиковал на своем сайте. Хотя думал, что это давно уже сделал, так как тема важная и популярная. Ничего, сейчас все сделаем.

На моем сайте, над каждой записью, есть вывод количества просмотров записи. Если Вы хотите сделать и у себя такой вывод, то нужно сделать несколько шагов.

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

Просмотры в админке

Код функции для вывода просмотров и создания отдельной колонки в админке:

// просмотры
function getPostViews($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 setPostViews($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);
    }
}
add_filter('manage_posts_columns', 'posts_column_views');
add_action('manage_posts_custom_column', 'posts_custom_column_views',5,2);
function posts_column_views($defaults){
    $defaults['post_views'] = __('Просмотры');
    return $defaults;
}
function posts_custom_column_views($column_name, $id){
        if($column_name === 'post_views'){
        echo getPostViews(get_the_ID());
    }
}

С 24 строки начинается код для вывода в админке. Если Вам это не надо, то можно удалить начиная с этой строки. Чтобы запустить подсчет просмотров, нужно подключить функцию в начале записи. Для этого в файле single.php, после вызова цикла, примерно такой код:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

Нужно добавить вот такой код:

<?php setPostViews(get_the_ID()); ?>

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

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

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

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

На этом все, спасибо за внимание. 🙂




Если Вам был полезным мой труд, можете поддержать сайт, обменяться со мной текстовыми ссылками или посмотреть рекламку, что займет 2 минуты :)


Оцените статью
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(9 голосов, в среднем: 5 из 5)

Опубликовано 12 комментариев

  • Евгений
    Комментариев: 1

    Здравствуйте! Жаль что это всё не работает, если стоит плагин кеширования - например W3 Total Cache. В этом случае считаются только просмотры мои ,как админа, а пользователей нет. Может знаете, как обойти кеширование?

    • Виталий
      Комментариев: 269

      У меня стоит плагин кэширования и все отлично работает 🙂

      • Дмитрий
        Комментариев: 1

        Количество просмотов на вашем сайте не работает - открывал этот пост в разных браузерах и всегда выводилось `798`. Наверное все же подсчет не ведется с плагинам кеширования для незалогиненных пользователей.

        • Виталий
          Комментариев: 269

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

          • Дмитрий
            Комментариев: 1

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

  • Виктор
    Комментариев: 5

    Привет Виталий, а возможно ли как-нибудь накрутить счётчик?

    • Виталий
      Комментариев: 269

      Зайдите в админку, откройте запись для редактирования. Включите сверху экрана, в выезжающей панели в настройках - "ПРОИЗВОЛЬНЫЕ ПОЛЯ" как на скриншоте - http://prntscr.com/cxjnkk.
      Под текстом записи появятся эти произвольные поля . Ищите post_views_count и цифру рядом. Цифра и есть просмотры. Меняйте на свое значение. http://prntscr.com/cxjnx9

  • Артём
    Комментариев: 13

    Доброго времени суток
    Обнаружил такой баг в подсчете кол-ва просмотров: для теста сделал две статьи в одной из категорий , вывел на страницу подсчет просмотров для статей и вот когда например захожу на первую статья и потом смотрю кол-во просмотров , то почему-то засчитывает просмотр и ко второй статье , а если на вторую захожу , то плюсует просмотр только данной статье) почему такое может происходить ?) в чем может быть проблема?

    • Артём
      Комментариев: 13

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

      • Виталий
        Комментариев: 269

        Странно. Проверил на своих сайтах и нигде такого глюка не нашел. Посмотрите внимательно, может, где-то, что-то с чем-то конфликтует или не в правильном месте добавлено.

Добавить комментарий

Заполните поля ниже. Ваш e-mail не будет опубликован. Обязательные поля помечены *

Уважаемые пользователи! При добавлении комментариев на сайт Вам следует соблюдать правила указанные под формой отправки комментариев.

Соблюдайте добавления комментариев

Это не спам *

Нажмите, чтобы добавить код в комментарий