Как добавить счетчик просмотров постов

Как добавить счетчик просмотров постов | n-wp.ru
👍 Научим бесплатно правильно создавать сайты на 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);
    }
}

После этого нужно добавить в шаблон страницы, просмотры которой вы хотите считать, метку, фиксирующую просмотры. Если вы хотите считать просмотры постов, то нужно добавить код в файл single.php, если просмотры страниц – в файл page.php, если просмотры прикрепленных вложений (изображения, медиафалы) – то в файл attachment.php (подробные сведения смотрите в посте о шаблонах).

</pre>
<p>Ну и последним шагом будет вывод количества просмотров. В шаблон нужно вставить такой код:</p>
<pre>

Иногда администратору удобнее смотреть на количество просмотров прямо в админке.

Как добавить счетчик просмотров постов

Давайте и такую возможность создадим. Откройте все тот же файл functions.php, и добавьте в него код:

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());
    }
}

Этот код создает отдельную колонку в списке постов с количеством просмотров.

Создай свой первый сайт на WordPress

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

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

  1. Kvanto

    А куда в файле functions.php вставлять эти две функции подсчета и вывода? Я вставил в произвольно место, оно что-то не считает, всё по нулям.

    Ответить
    1. А в single.php что вставили?

      Ответить
      1. Kvanto

        Я вставил в image.php указанную Вами строчку с echo.

        Ответить
        1. О да, извиняюсь. Я исправил код – вторую часть.

          Ответить
          1. Kvanto

            Ага, заработало. Спасибо!

            Только жаль, что по изображениям считаются только те просмотры, где картинка занимает отдельную страницу. Просмотры через плагины для отображения картинок и галерей не считаются.((

            Ответить
  2. AlexGr

    А на сколько верно он считает?

    Ответить
    1. Ну насколько верно можно посчитать количество просмотров? Считает все просмотры подряд.

      Ответить
      1. AlexGr

        Ну к примеру, я обновляю страницу 5 раз в день, и он меня каждый раз посчитает?

        Ответить
        1. Да, посчитает. А вдруг вы любитель перечитывать? Это счетчик просмотров, а не посетителей.

          Ответить
          1. AlexGr

            понял. спасибо за разъяснения..

            Ответить
  3. Kalian

    Как этот плагин будет работать с плагинами кэширования?
    Я так понимаю, при кэшировании будет неверно и подсчитываться, и выводиться количество просмотров.

    Ответить
    1. Если вы имеете ввиду статическое кэширование (например, WP Super Cache, Hyper Cache и подобные), то все зависит от времени жизни кэша. Если кэш живет 12 часов, то будут отображаться промежуточные результаты, которых достигнет счетчик за время жизни кэша, то есть за 12 часов.

      Если будет использоваться кэширование обращений к базе данных (например, DB Cache Reloaded), то счетчик всегда будет показывать актуальное для данного момента значение.

      Ответить
  4. FoMurJIom

    А как добавить в админке к страницам что бы тоже было видно количество просмотров?

    Ответить