Количество просмотров - PostView
Заметки по Wordpress

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

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

Создание и улучшение интерфейса сайта – процесс практически бесконечный. Хочется сделать все лучше и лучше. В данном посте мы поговорим о количестве просмотров поста. Нам надо встроить счетчик , который позволит  считать  числа просмотров ваших записей или страниц.

I Способ Плагин – PostView

Если выбирать плагины для подсчета просмотров, по наибольшей простоте это wp-postviews.
Плагин WP-PostViews

Установка:

  1. Вы можете поместить его в archive.php, single.php, post.php или page.php а также CustomPostType.php.
  2. Найти например:
    <?php while (have_posts()) : the_post(); ?>
  3. И вставить данный код:
    <?php if(function_exists('the_views')) { the_views(); } ?>

II Способ Количество просмотров – PostView

Это способ ручной правки шаблона. И поможет нам в этом Kama.
Ссылка на решение от Kama

Вот функция, которую вставить в файл functions.php вашей темы (шаблона) на WordPress.
[crayon lang=”php”]/* Подсчет количества посещений страниц
———————————————————- */
add_action(‘wp_head’, ‘kama_postviews’);
function kama_postviews() {

/* ———— Настройки ————– */
$meta_key = ‘views’; // Ключ мета поля, куда будет записываться количество просмотров.
$who_count = 1; // Чьи посещения считать? 0 – Всех. 1 – Только гостей. 2 – Только зарегистрированых пользователей.
$exclude_bots = 1; // Исключить ботов, роботов, пауков и прочую нечесть :)? 0 – нет, пусть тоже считаются. 1 – да, исключить из подсчета.
/* СТОП настройкам */

global $user_ID, $post;
if(is_singular()) {
$id = (int)$post->ID;
static $post_views = false;
if($post_views) return true; // чтобы 1 раз за поток
$post_views = (int)get_post_meta($id,$meta_key, true);
$should_count = false;
switch( (int)$who_count ) {
case 0: $should_count = true;
break;
case 1:
if( (int)$user_ID == 0 )
$should_count = true;
break;
case 2:
if( (int)$user_ID > 0 )
$should_count = true;
break;
}
if( (int)$exclude_bots==1 && $should_count ){
$useragent = $_SERVER[‘HTTP_USER_AGENT’];
$notbot = “Mozilla|Opera”; //Chrome|Safari|Firefox|Netscape – все равны Mozilla
$bot = “Bot/|robot|Slurp/|yahoo”; //Яндекс иногда как Mozilla представляется
if ( !preg_match(“/$notbot/i”, $useragent) || preg_match(“!$bot!i”, $useragent) )
$should_count = false;
}

if($should_count)
if( !update_post_meta($id, $meta_key, ($post_views+1)) ) add_post_meta($id, $meta_key, 1, true);
}
return true;
}[/crayon]
а этот код вставляем где нужно вывести число просмотров:

Просмотров: <?php echo get_post_meta ($post->ID,'views',true); ?>

 

Мы достигли своего результата 2 способами, выбирайте какой вам больше нравится.

 

Новые посты

Всплывающая форма входа для wordpress без плагина

Гордеев Игорь

Google analyticator 6.2 Русская версия

Гордеев Игорь

Создание меню на wordpress

Гордеев Игорь

23 комментария

Сергей 08.02.2012 / 18:42

Отличная статья. У меня есть блог на wordpress, как раз хотел на него поставить счетчик посещений, теперь я понял как это сделать благодаря данному материалу. Буду пробовать, спасибо.

Ответить
ILYA 16.04.2012 / 17:36

С недавноего времени отказался от использования этого плагина на главной. Только в постах.
Он достаточно замедляет работу сайта. Если его отключить, сайте будет реально быстрее гонять.

Ответить
Гордеев Игорь 17.04.2012 / 00:40

Это плагин, а тут показано как сделать без плагина. Разумеется осуществляется лишние запросы в БД и это не вовсе не тормозит сайт. Каждый должен сам расценивать для себя применимость этой доработки, нужна она ему или нет.

Ответить
Dm 27.08.2012 / 11:48

А такой “электро-счетчик” у кого-нибудь уже стоит или это просто красивая картинка была (и + оригинальная идея)

Ответить
Гордеев Игорь 27.08.2012 / 13:08

А на этом блоге посмотреть не судьба, а будете флудить будете забанены.

Ответить
Наталья 05.11.2012 / 11:16

Не знаю что не так. Но счетчик не работает. Я уберу эту функцию вообще если подсчет будет вестись с нуля (как будто сайт только что родился), но страничку обновила и не фига. Вообще пусто. Делала вторым способом. В чем может быть причина?
Игорь, а почему у Вас данные не запоминаются в графах: имя, сайт, мейл?

Ответить
Гордеев Игорь 06.11.2012 / 10:14

1. Счет начинается вестись с нуля как только вы установите данный хак.
2. Комментарии подправил, сейчас должно работать нормально. Это все последствие кэш maxsite-cache.

Ответить
Наталья 06.11.2012 / 17:26

Да, вижу что заработал счетчик. Оставлю наверное – в таком месте удалось хорошем внедрить, мне не мешает. Но так мало просмотров – аж плакать хочется. Я то думала это будет интересно. Заходит 300 человек в день и кол-во просмотров на свежей статье (популярной по содержанию) всего 3.
Спасибо, теперь вручную заводить не надо сайт и т.д. – все на месте 🙂

Ответить
Наталья 24.11.2012 / 19:53

Поставить поставила я этот код, показывает, но как работает мне не нравится. Подозреваю, что не все просмотры он фиксирует. Вот вам свежий пример сегодня полученный. Выпустила статью. Сделал 2 твита сама. Показывает через часа три после выпуска всего один просмотр, но 11 твитов!!! Вот вопрос откель твиты взялись, если никто кроме меня не смотрел???? Так же и по другим постам, посещалка около 400 уников в день, но я не вижу чтоб что-то смотрели судя по “просмотрщику”. Игорь, снова видео выпало из спойлера и закрывает полэкрана, если что-то можно сделать, то исправьте это недоразумение.

Ответить
Inco 26.11.2012 / 15:24

А вы второй код не ставьте сразу, а через недельку добавьте вот вам и будут циферки ненулевые.

Ответить
Наталья 29.11.2012 / 22:54

Ну это же ерунда. Просто за неделю накопятся 😉 Да хоть через месяц, мне кажется неверно считается. Пример я описала выше.

Ответить
Наталья 29.11.2012 / 22:57

По моему вы про код не поняли. Код то один, просто вариантов два. Первый вариант с плагинами, а второй с кодом. Я плагин не ставила, а сразу второй вариант использовала -в виде кода. Если что, мне эта функция кажется совсем не обязательной, но привлекательной, когда просмотры на тысячи тысяч идут 😉
Но как считает я пока не пойму.

Ответить
Inco 26.11.2012 / 15:28

У меня стоит плагин top 10, он тоже считает количество просмотров. Мне интересно если сделать с помощью кода подсчет просмотров, подхватит ли код те просмотры которые набрал плагин. А плагин удалить. Такое возможно?

Ответить
Гордеев Игорь 27.11.2012 / 02:17

Вряд ли. Данный метод создает отдельную таблицу в БД. Если только шаманить с базой.

Ответить
Inco 27.11.2012 / 02:21

Значит если я поставлю данный код в functions он не подерется с вышеназванным плагином?

Ответить
Гордеев Игорь 28.11.2012 / 19:11

Я точно не знаю с этим плагином не работал, попробуйте как я написал здесь.

Ответить
Виталий 26.11.2012 / 20:28

У меня похожий вопрос. Стоял плагин WP PostViews, на некоторых статьях накопилось несколько десятков тысяч просмотров, но от плагина пришлось отказаться в борьбе с нагрузкой на сервер.

Как в этом коде, можно использовать данные плагина WP PostViews, (из БД) о просмотрах?

Ответить
Гордеев Игорь 28.11.2012 / 19:12

Попробуйте сюда вписать название вашей таблицы

$meta_key        = 'views'; 
Ответить
Inco 28.11.2012 / 20:50

Если удалить плагин удалятся ли в базе данных таблицы созданные им?

Ответить
Гордеев Игорь 01.12.2012 / 14:39

Вот этого я не знаю, возможно удалится. Сделайте бэкап этой таблицы.

Ответить
Наталья 27.02.2013 / 12:43

У моего Друга стоял плагин и пару часов назад ое его удалил, а перед этим этот код вставил, потом плагин удалил и все записи остались на месте, зато на 1 плагин стало меньше.

Ответить
Евгений 06.01.2013 / 03:34

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

Ответить
Гордеев Игорь 08.01.2013 / 12:56

Евгений, это известное высказывание:

Тот, кто спрашивает, выглядит дураком всего пять минут.
Тот, кто этого не делает, остается дураком на всю жизнь.

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

Ответить

Оставить комментарий