Заметки по Wordpress

Количество просмотров – 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 способами, выбирайте какой вам больше нравится.

 

Новые посты

Вывод числа фолловеров и FeedBurner-счетчик на WordPress

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

Как вставить рекламу в RSS WordPress

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

Сustom fields – создаем поиск по произвольным полям

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

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

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

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

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

Ответить

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