Вывод самых популярных записей на странице wordpress. Счетчик просмотров записей на WordPress: установка и настройка

Один из самых излюбленных способов улучшения поведенческих факторов на сайте — использование блока «Популярные записи». Он позволяет удержать внимание посетителя на самых интересных записях. В общем, это очень хорошо для продвижения вашего сайта.

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

Теория популярности

Обычно для реализации вышеуказанной задачи, разработчики прибегают к простому алгоритму: выводят публикации по количеству просмотров или комментариев. Больше просмотров/комментариев — больше популярность. Кажется, все просто и логично.

Но на мой взгляд, используя такой алгоритм ранжирования, мы допускаем небольшую ошибку. Дело в том, что в этом случае мы не учитываем фактор времени. Это значит, что публикация, предположим, размещенная на сайте год назад, скорее всего будет иметь больше просмотров или комментариев, чем размещенная вчера. Даже если новая объективно лучше и интереснее, чем более старая. Таким образом, старые публикации, по стечению обстоятельств, навсегда пропишутся в блоке «Популярные записи».

На эту мысль натолкнул один известный сайт, посвященный работе в Photoshop. Так, в блоке «Популярные», выводятся уроки, которые качественно хуже, чем более новые. Но, из-за их более раннего появления, имеют больше просмотров. Список популярных записей не меняется вот уже более полутора лет. Нужно ли это и вам?

Что касается популярности по комментариям. Возникают ряд вопросов. Что если пока комментариев на сайте нет? Как ранжировать, если критерий популярности — только комментарии? Вопросов больше, чем ответов.

Создаем алгоритм популярности

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

Индекс популярности = Просмотры / Дни существования

Разберемся. Исходя из формулы, пост «A», который существует 100 дней, и имеет 100 просмотров, будет менее популярен, чем более новый пост «B», но за 1 день, собравший 10 просмотров. Это логично, ведь теоретически, пост «B» за те же 100 дней наберет значительно больше просмотров, чем его конкурент.

Однако, и эта формула не учитывает еще один момент. 100 дней назад посещаемость сайта могла быть всего лишь 1 человек в день, а в момент публикации поста «B» — 100 человек в день. Давайте введем еще один фактор ранжирования. Это показатель комментирования. Логично, ведь если публикацию обсуждают, значит она интересна. Наша формула будет выглядеть следующим образом:

Индекс популярности = Комментарии + Просмотры / Дни существования

Итак, в нашем алгоритме будут учитываться следующие факторы:

  1. количество просмотров записи
  2. количество дней существования публикации
  3. количество комментариев

Теперь, определившись с формулой, приступим к реализации вывода записей по созданному индексу популярности.

Вывод записей

Создадим заготовку, которая послужит отправной точкой. Выводим 5 записей. Разместите следующий код там, где хотите вывести посты.

Теперь можно его красиво оформит. Этот код нужно разместить в файл style.css вашей темы.

#popular_posts ul { margin-left:10px; } #popular_posts ul li{ display:block; border-bottom:1px solid #f1f1f1; padding:15px 0px 20px 0px; height:50px; font-size:13px; } #popular_posts ul li img { width: 50px; height: 50px; float: left; margin: 0 13px 0 0px; background: #fff; border: 2px solid #f1f1f1; border-radius: 50%; } #popular_posts ul li p { margin-top:10px; }

Рассчитываем индекс популярности

Количество просмотров страницы

Function setPostViews($postID) { $count_key = "views"; $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); } } function getPostViews($postID){ $count_key = "views"; $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; }

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

На всякий случай, если нужно вдруг вывести во фронтэнде:

Просмотры:

Считаем количество дней существования поста

// получаем дату публикации поста в секундах начиная с 1 января 1970 года $dtNow = get_post_time("U", true, $postid); // получаем текущее время $dtTime = current_time("U"); // считаем разницу в днях $diff = $dtTime - $dtNow; $days = $diff/86400;

Считаем количество комментариев

comments_number("0", "1", "%");

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

Выводим записи по популярности

Есть один важный момент. Если мы станем пересчитывать индекс популярности всякий раз, когда кто-то заходит на сайт, это создаст довольно высокую нагрузку. Сайт может работать медленнее. Чтобы не создавать лишней нагрузки, давайте запланируем задачу, которая позволит нам производить пересчет один раз в сутки. Воспользуемся планировщиком wp_schedule_event() . Разместите код ниже в файл function.php:

// добавляем запланированный хук add_action("wp", "my_activation"); function my_activation() { if(! wp_next_scheduled("my_daily_event")) { wp_schedule_event(time(), "daily", "my_daily_event"); } } // добавляем функцию к указанному хуку function do_this_daily() { global $wpdb; $postids = $wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE post_status="publish" AND post_type="post" ORDER BY ID ASC"); foreach($postids as $postid){ $postid = $postid->ID; // ID записи // считаем количество просмотров $views = (int)get_post_meta($postid, "views", true); // считаем дни существования поста //$dtNow = get_the_time("U"); $dtTime = current_time("U"); $diff = $dtTime - $dtNow; $dtNow = get_post_time("U", true, $postid); $dtTime = current_time("U"); $diff = $dtTime - $dtNow; // считаем комментарии и сумму просмотров с комментариями $comments = get_comments_number($postid); $summa = $views + $comments; // считаем индекс популярности if ($days = "0"){ $pop_index = $summa / 1; } else { $days = (int)$diff/86400; $pop_index = $summa / $days; } $pop = round($pop_index, 2); // записываем индекс популярности в произвольное поле поста update_post_meta($postid, "popularity", $pop); } } add_action("my_daily_event", "do_this_daily", 10, 2);

Теперь сам вывод постов.

Вывод через шорткод

Для удобства, давайте попробуем выводить записи через шорткод [ popular-posts ] (не забудьте убрать пробелы).

Function popular_posts() { ob_start(); ?>

Параметры ob_start() и ob_get_clean() позволяет нам выводить цикл в том месте, где мы хотим. Если их не добавить, список будет выводиться просто вверху до загрузки всего остального контента.

Вместо итогов

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

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

Нужно ли устанавливать счетчик просмотров статей?

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

Перейдем к рассмотрению плагинов для подсчета посещений для сайта на WordPress.

Плагины для установки счетчика просмотров страниц

Первый плагин, который рассмотрим – PageViews.

Его основное преимущество перед другими плагинами той же категории – он не нагружает сайт. Потому плагин подойдет даже для ресурсов с высоким траффиком и, по словам разработчиков, никак не замедлит их работу. Каким образом работает Pageviews? Это плагин с открытым кодом, основанный на JavaScript. Подсчет просмотров происходит на стороннем ресурсе, без задействования мощностей сайта, на котором установлен Pageviews.

Последнее обновление плагина – 5 месяцев назад. Активных установок 40 000+. Совместимость вплоть до версии 4.7.5.

У плагина Post Views Counter есть три метода сбора информации по просмотрам: PHP, JavaScript или REST API. Среди дополнительных функций – возможность быстро импортировать данные из WP-PostViews, а также устанавливать значение на счетчике вручную.

Установка плагина стандартная.

В настройках есть две закладки: Общие (General) и Отображение (Display).

В общих можно выбрать тип страниц, для которых будет производиться подсчет просмотров, метод подсчета (PHP, Javascript), время между учетом просмотров одного и того же пользователя, тип посетителей.

На вкладке Display можно указать надпись счетчика (Post View Label), выбрать тип страниц, на которых будет отображаться статистика, выбрать позицию и стиль иконки счетчика. Также можно спрятать счетчик от определенного типа посетителей.

Разумеется, это не все плагины для подсчета количества просмотров записи на WordPress. Кроме описанных выше, также есть Page View Count, Page Visit Counter. Выбирайте тот, который больше соответствует вашему запросу и потребностям.

Счетчик просмотров страниц на 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 ) ; } }

Здесь первая функция считает количество просмотров страницы в WordPress, а вторая выводит их. Теперь в файлах single.php, page.php, index.php (по аналогии с тем, как мы прописывали код для плагина) в том месте, где вы хотите выводить счетчик нужно прописать следующее:

В файле стилей для данного элемента можно указать такие параметры:

1 2 3 4 .views { margin-left : 18px ; font-size : 15px ; background : url ("images/image.png”); padding: 0px 0px 2px 33px;}

Views{margin-left: 18px; font-size: 15px; background: url("images/image.png”); padding: 0px 0px 2px 33px;}

Здесь мы задаем размер шрифта, величину поля, фон и т.п.

Приветствую Вас друзья! На этом уроке мы научимся обращаться к базе данных WordPress -а и выводить на сайте нужную нам информацию, в нужном месте и самое главное без участия плагинов. Умение решать простейшие задачи без использования плагинов, например выводить записи WordPress – навык нужный и полезный.

Вывод числа записей на сайте WordPress

Для работы с базой данной у WordPress -а имеется отдельный класс – $wpdb , в котором описаны все его функции (методы). Для решения такой задачи, как вывода количества записей, мы будем использовать метод get_var () .

Выведем некоторое кол-во записей внизу сайта, например в футере. Для этого в файле footer.php пропишем следующий код:

Всего записей:

Обращаемся к методу get_var:

$wpdb->get_var ("SELECT COUNT(*) FROM $wpdb->
post_status="publish"");
?>

Этот метод делает запрос к базе данных и возвращает количество рядов (их число), которое получилось по результатам запроса. Расшифровываем выше написанный код. Делаем выборку числа SELECT COUNT(*) из таблицы FROM wp_post , где WHERE тип записи post и сами посты со статусом опубликованных publish . Обратите внимание, что принято обращаться не напрямую к таблице wp_posts , а через объект $wpdb->posts .

Всю запись в круглых скобках () мы помещаем в переменную, чтобы в дальнейшем ее использовать в работе. Создаем переменную, даем ей осмысленное и уникальное имя, например: $all_count_posts . Запишем теперь код с переменной.

$all_count_posts = $wpdb->get_var ("SELECT COUNT(*) FROM $wpdb->posts WHERE post_type="post" AND
post_status="publish"");
?>

Всего записей:

Переменная $all_count_posts – результат нашего запроса, который выводим в нужном нам месте. Итак мы получили количество записей, значит наш запрос работает

Вывод популярных записей WordPress

Давайте усложним нашу задачу и выведем только самые популярные записи WordPress -а на основе количества комментарий. Делать мы это будем с помощью метода get_results . Метод get_results делает выборку данных из таблиц WP .

Перед нами стоит задача вывести заголовки популярных статей в виде ссылок в подвале. Для этого открываем footer.php и делаем в нем HTML разметку из списков.

Популярные посты




Создадим переменную $all_popular_posts и сформируем для нее наш запрос.

$all_popular_posts = $wpdb->get_results("SELECT post_title, guid, comment_count FROM $wpdb->posts ORDER
BY comment_count DESC LIMIT 3"); //сортировка записей wordpress
?>

Что мы тут написали? Мы выбираем, что будем выводить: заголовки записей, ссылки на них и количество комментариев из таблицы wp_posts . Отсортируем их по количеству комментариев в порядке убывания и выведем только три ссылки.

Получить WordPress записи

Посмотрим, что нам вернет этот запрос.

Var_dump($all_popular_posts);

Запрос работает, мы получили популярные записи, нам осталось вывести их в заранее размеченном месте в подвале.

Вывод WordPress записей

Популярные посты





  • guid?>">post_title?> (comment_count?>)




Если переменная all_popular_posts не пустая , то мы пройдемся в цикле по этому массиву. В тегах li выводим популярные записи WordPress через новую переменную $item , оформляем их как ссылки.

Хотите научиться создавать сайты на WordPress ? Тогда обратите внимание на , где подробно описан весь процесс от создания блога до размещения его в интернете.

Продолжая тему полезных улучшений для WordPress я расскажу Вам как учесть статистику посещения страницы и вывести количество просмотров записи .

Осуществить задуманное можно двумя способами:

1. Установить плагин стороннего разработчика WP-PostViews
2. Добавить несколько строк кода в шаблон WordPress

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

Выводим количество просмотров записи в WordPress с помощью плагина Wp-PostViews

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

Основные возможности плагина WP-PostViews:

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

Как видите, функционал плагина WP-PostViews совсем не маленький. Однако, не стоит забывать об основной его функции — сбор и выдача статистики по количеству просмотров записей и страниц. И сейчас мы посмотрим как данный плагин справляется с данной задачей.

Для этого нужно вставить следующий код

в нужное место в коде файла вашей темы.

К примеру, если вы хотите, чтобы количество просмотров отображалось на странице записи сразу после ее текста, нужно вставить код после функции вызова текста в файле single.php

Таким же образом можно вставить данный код в:

  • index.php — для вывода на главной странице;
  • page.php — для вывода на страницах;
  • archive.php — для вывода в архивах.

В настройках плагина

можно изменить некоторые функции.

Теперь о том, как использовать дополнительные функции плагина WP-PostViews.

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

Результат будет выглядеть следующим образом

По-умолчанию, выводится 10 самых просматриваемых записей. Для того, чтобы изменить это число, необходимо определить параметры в функции get_most_viewed .

Например, чтобы вывести список из пяти самых популярных записей изменяем код таким образом

Для вывода последних просмотренных записей нужно вставить следующий код

для вывода самых популярных записей по тегам —

для вывода самых популярных записей в категории —

.

Вывод количества просмотров записи в WordPress без плагина

Теперь рассмотрим второй способ вывода количества просмотров страницы с помощью вмешательства в код шаблона WordPress.

Добавим в файл functions.php следующий код

Лучше добавить код в конец документа, и обозначить его комментариями, чтобы в случае ненадобности с легкостью его найти и удалить.

Код представляет две функции, одна из которых собирает статистику, а другая отвечает за ее вывод.

Следующим шагом нужно добавить в файлы (single.php, page.php и т.п.), в которых необходимо считать просмотры следующий код

и завершающим шагом вставляем код

Я, например, поместил данный код до текста записи. В итоге это выглядит так

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

  • большой функционал;
  • вывод популярных записей (доплнительная перелиновка);
  • гибкие настройки;
  • периодические обновления.

Недостатки:

  • ограниченый функционал.

Достоинства:

Заключение: если ваш сервер позволяет увеличить нагрузку, то лучшим вариантом для вас будет установка плагина WP-PostViews, за счет его большого функциона, и дополнительной перелиновки. В противном случае воспользуйтесь вторым методом.

Страница плагина на wordpress.org.

А вот если ваши познания в языке программирования PHP еще слишком малы, вы можете найти много полезной информации на php форуме . Это поможет вам в дальнейшей работе с wordpress.

Вывод популярных записей где-нибудь на видном месте сайта используется чаще всего для двух целей:

  1. Очевидная цель – привлечь внимание читателя и задержать его на сайте подольше интересной информацией;
  2. Менее явный эффект – вывод ссылок на популярные страницы на главной странице передает им определенный вес и повышает позиции этих страниц в поисковых системах по ключевым для этих страниц запросам.

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

Плагин обладает всеми необходимыми мне характеристиками:

  • возможность указания диапазона дат для определения популярности;
  • вывод миниатюры, в том числе и первой картинки в посте;
  • вывод популярных записей как в форме виджета, так и в виде функции с гибкими параметрами.

Настройка WordPress Popular Posts

Рассмотрим процесс настройки и вывода самых читаемых записей на вашем сайте.

Затем переходим в виджеты и перетаскиваем виджет WordPress Popular Posts из неактивных в область сайдбара вашего сайта.

Раскрываем стрелкой виджет и настраиваем его по вашему вкусу.

Title – название блока, отображаемое на сайте.

Show up to – количество выводимых записей.

Sort posts by – сортировать по числу комментариев (Comments) и просмотров всего (Total views) или по среднему числу просмотров в день (Avg. daily views).

Time Range – устанавливаем, за какой период времени выводить записи: день, неделю, месяц, за всё время.

Post type(s) – какие виды записей отображать: post (посты), page (страницы).

Post(s) ID(s) to exclude – страницы для исключения.

Category(ies) ID(s) – категории для включения (в этом случае указываем их id), либо для исключения (в этом случае указываем их id со знаком ‘-‘).

Author(s) ID(s) – настраивается аналогично предыдущему пункту.

Shorten title – обрезает заголовок до указанной длины.

Display post excerpt – выводит анонс указанной длины.

Display post thumbnail – выводит картинку слева от записи (по умолчанию); при выборе появятся дополнительные настройки для указания ширины и высоты картинки.

Display comment count – выводит количество комментариев у записи.

Display views – выводит количество показов.

Display author – отображает автора поста.

Display date – отображает дату поста.

Display category – отображает категорию.

После выполнения настроек нажимаем кнопку “Сохранить” и смотрим на работу нашего сайта – в сайдбаре должен появится блок “Популярные записи”, однако, чтобы в нем что-то начало отображаться плагину нужно небольшое время для набора статистики.

На этом можно было бы и закончить, но еще заглянем в настройки самого плагина. Для этого перейдем в меню “Настройки – WordPress Popular Posts”.

Там рассмотрим некоторые основные настройки.

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

Pick image from – какую плагину брать картинку для отображения: featured image – миниатюру, first image on post – первую картинку из записи, custom field – из пользовательского поля.

Далее рассмотрим раздел Parameters.
Как мы видим здесь указано название функции – wpp_get_most_popular(), которую вы можете использовать в любом месте вашего сайта, если не хотите использовать виджет. А ниже в разделе описаны многочисленные параметры этой функции.

Вывод популярных записей для рубрики

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

С помощью плагина

Для этого добавляем виджеты плагина WPP в боковую колонку в количестве, равном количеству рубрик у вас на сайте (или меньшем количестве, если популярные записи нужно выводить не для всех категорий). Для каждого случая указываем свою рубрику в поле Category ID. В настройках плагина Conditional Widgets указываем, что виджет должен отображаться только в рубрике, которую вы указали в поле настроек.

Таким образом каждый виджет будет отображаться только 1 раз в одной конкретной рубрике и отображать только записи из этой рубрики.

С помощью php скрипта

Если первый способ по каким то причинам не подходит, то можно сделать то же самое с помощью php скрипта. Для этого у вас на сайте должен работать плагин, позволяющий работу php в виджетах, например, PHP Text Widget .

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

term_id; break; } } $dp .="&pid=".get_the_id(); // исключаем из вывода текущую запись } wpp_get_mostpopular($p.$dp); ?>

// присваиваем переменной $p некоторые параметры, которые вы можете заменить на свои:

// stats_views - отображать кол-во просмотров;

// limit - кол-во записей

// thumbnail_width и thumbnail_height - ширина и высота картинки

// полный список параметров вы можете посмотреть в настройках плагина в разделе Parameters

$p = "stats_views=0&limit=10&thumbnail_width=75&thumbnail_height=50" ;

// дополнительные параметры

$dp = "" ;

// если мы находимся на странице категории, получаем ее и записываем в параметры

if (is_category () ) {

$cat = get_query_var ("cat" ) ;

if (! empty ($cat ) ) { $dp = "&cat=" . $cat ; }

// если мы находимся на отдельной странице, получаем список присвоенных ей рубрик

Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: