Янв
31
298

Плагин WP-PostRatings рейтинга постов в WordPress

рейтинг в wordpressПо планам на 2011 я решил полностью модернизировать и настроить некоторые свои блоги в соответствии с личными пожелания. Вместе с этим недавно на хостинге, который использую для парочки своих проектов HostPro начались небольшие подтормаживания. У них там были вроде как технические работы или что-то около, после чего ситуация стабилизировалась, но я все же решил заняться оптимизацией самих блогов. Посудите сами 8 сайтов на одном аккаунте, парочка из которых с посещениями под 1-2к уников это ли не нагрузка. Начал я, конечно, же с кэширование в wordpress так как это достаточно простой и доступный способ провести оптимизацию загрузки страницы. Учитывая, что никакие ссылки на белых проектах я не продаю, проблем с использованием WP Super Cache (выбранного мной для работы) быть не должно.

Еще одним важным моментом в оптимизации работы блога есть подборка плагинов. Ни для кого не секрет, что некоторые модули могут здорово загрузить ваш проект и быть причиной тормозов на сайте.      Одним из таких тяжелых плагинов, к сожалению, оказался WP-PostViews для определения  наиболее популярных (просматриваемых) материалов блога. Сначала не мог понять откуда может быть нагрузка у простого, казалось бы, модуля, но в комментариях мне все же советовали отказаться от него. Насколько я понимаю, каждое посещение пользователя пишется в базу данных дабы потом подбивать статистику — отсюда во-первых, дополнительная нагрузка на БД (если онлайн, допустим человек 5-10), во-вторых, «захламление» таблиц БД не столь важной информацией.

Короче говоря, было принято волевое решение для посещаемых блогов отказаться от использования WP-PostViews в пользу другого не менее интересного модуля — WP-PostRatings. Это рейтинговая система на AJAX для оценки статей и страниц wordpress сайта. После установки плагина пользователи смогут выставлять оценки (положительные, отрицательные либо количественные) к записям проекта. Основное преимущество WP-PostRatings это, конечно, возможность, выразить свое непосредственно отношение к публикациям сайта, то есть отметить нравится она или нет. Это действие подразумевает наличие определенной «не пассивно» аудитории проекта, которая бы оценивала ваши труды. Меня всегда пугали сайты, где красовались 2-3 оценки для статьи и все, возникает ощущение «неживого» блога. В то же время модуль WP-PostViews позволял просто выводить ссылки на популярные статьи, не нужно было никаких оценок и реакции посетителей. Тем не менее, из-за большой нагрузки все же склоняюсь к WP-PostRatings, при посещаемости в 1000-2000 уников за пару месяцев «набьете» оценки для постов, как новых, так и некоторых старых.

Установка и настройка WP-PostRatings

Скачать плагин WP-PostRatings  можно здесь.  Процесс установки его максимально прост — как обычно, разархивируем и заливаем на ФТП в папку wp-content/plugins, после чего Активируем WP-PostRatings в админке wordpress.

После установки в админке появится блок Ratings, где можно:

  • Manage Ratings — просматривать результаты оценок для статьей, делать выборки и удалять результаты.
  • Ratings Options — указывать некоторые настройки модуля.
  • Rating Templates — задавать шаблон отображения результатов и голосования.
  • Uninstall WP-PostRatings — удалить плагин.

В настройках вы можете выбрать различные варианты того, как будет отображаться оценивание — будь то обычный «+» и «-» либо количественная оценка в виде «звездочек». Их число, кстати, можно указывать такое как вам нужно.

Плагин WP-PostRatings

Если хотите чтобы для изображений использовался не GIF формат, а PNG, то в файле wp-content/plugins/wp-postratings/wp-postratings.php нужно найти строки:

define('RATINGS_IMG_EXT', 'gif');
//define('RATINGS_IMG_EXT', 'png');

И закомментировать (добавить //) первую из них, а у второй слэши убрать. После возвращаетесь в админку в меню Ratings Options и отмечаете один единственный «вариант со звездочками» для PNG.

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

<?php if(function_exists('the_ratings')) { the_ratings(); } ?>

Для файлов шаблона с выводом перечня постов (главная, архив) нужно располагать код внутри цикла Loop, то есть где-то после:

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

Проще всего сориентироваться для начинающих — это добавить вызов функции рядом с отображением названия категории и тегов, тогда все точно будет работать. Также плагин WP-PostRatings  поддерживает виджеты.

Чтобы вывести результаты опроса читательского мнения нужно использовать специальные функции, которые можно разделить на 4 направления:

  • Lowest Rated Post — статьи с наименьшим рейтингом.
  • Highest Rated Post — статьи с наибольшим рейтингом.
  • Most Rated Post — публикации за которые больше всего раз голосовали.
  • Highest Score Post — пост с максимальным средним показателем рейтинга, то есть, например, заметка с двумя голосами в сумме дающим 6.5 будет выше чем пост с одной оценкой в 7 баллов.

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

Примеры использования плагина WP-PostRatings

Статьи с наименьшим рейтингом

<?php if (function_exists('get_lowest_rated')): ?>
   <ul>
      <?php get_lowest_rated(); ?>
   </ul>
<?php endif; ?>

где по умолчанию для функции используются параметры get_lowest_rated(‘both’, 0, 10). Здесь вместо both можно использовать отдельно post и page, то есть выводить оценки постов, страниц отдельно или вместе. Значение 0 — минимальная оценка для отображения в списке, 10 — количество выводимых постов.

Пост с самым большим рейтингом по тегу

<?php if (function_exists('get_highest_rated_tag')): ?>
   <ul>
      <?php get_highest_rated_tag(TAG_ID); ?>
   </ul>
<?php endif; ?>

По умолчанию параметры функции следующие get_highest_rated_tag(TAG_ID, ‘both’, 0, 10). Здесь последние значения идентичны предыдущему примеру, а вот в качестве TAG_ID нужно указать ID тега, для которого выводится список рейтинговых постов. Если хотите использовать несколько тегов, то вместо одного значения добавляете массив array(1, 2, 3).

Самый оцениваемая запись в категории

<?php if (function_exists('get_most_rated_category')): ?>
   <ul>
      <?php get_most_rated_category(CATEGORY_ID); ?>
   </ul>
<?php endif; ?>

По умолчанию синтаксис функции get_most_rated_category(CATEGORY_ID, ‘both’, 0, 10). Здесь для CATEGORY_ID указывает номер категории, можно использовать массив array(4, 5, 6). Для постов вместо ‘both’ ставим ‘post’, 0 — минимальное количество голосов для отображения, 10 — число выводимых записей.

Список лучших публикаций по средней оценке за период

<?php if (function_exists('get_highest_score_range')): ?>
   <ul>
      <?php get_highest_score_range('1 day'); ?>
   </ul>
<?php endif; ?>

По умолчанию функция имеет вид — get_highest_score_range(‘1 day’, ‘both’, 10). Как видимо, количество дней для периода нужно указывать обязательно. При этом можно использовать значения по типу 2 days, 1 month. 10 — число записей, ‘both’ — их формат (посты + страницы).

Отображение рейтинга без голосования

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

<?php if(function_exists('the_ratings')) { 
echo expand_ratings_template('<span class="rating">%RATINGS_IMAGES%</span> <strong>%RATINGS_USERS% votes</strong>', get_the_ID()); 
} ?>

Здесь переменная RATINGS_IMAGES отвечает за вывод графики («звездочек»), а вместо RATINGS_USERS подставляется значению рейтинга. Размещаете функцию в файле шаблона, где хотите показывать результаты, точно также как рассказывалось про отображение кода выше (т.е. внутри цикла if have_posts). Кстати, в админке в разделе настроек модуля на странице Post Ratings Templates найдете список всех возможных переменных.

В целом ничего сложно нет, но кое какие хаки и мысли по модификации плагина я уже успел воплотить в жизнь как здесь, так и на Дизайн Мании. Подробный разбор исходников и некоторых функций плагина WP-PostRatings смотрите в следующей заметке — но там информация больше для продвинутых пользователей, начинающим и вообще в 90% случаев достаточно этой статьи и описания на официальном сайте.

Рейтинг с помощью кнопки Лайк

Рейтинг с кнопкой Лайк

В качестве альтернативы, если вам требуется организовать рейтинг с помощью кнопки Лайк, можете воспользоваться плагином Like Button Rating. Плагин предоставляет мгновенную статистику, 28 готовых тем, 140 иконок и позволяет сортировать материалы по лайкам. Работает с постами, страницами, товарами WooCommerce, BuddyPress, bbPress и комментариями.

P.S. Постовой. Новый полезные сайт для работников Forex рынка, где найдете рейтинг форекс брокеров а также много другой ценной информации по теме.

рейтинг Оцените статью:
Ужасная статьяНичего интересногоТак себеНормальноХорошоКлассный постВ закладки!
(голосов - 932, средний балл: 5,79 из 7)
Загрузка...

категория Категории: Оптимизация; Плагины;
теги Теги: , , , , , , , .

комментариев 298 к статье “Плагин WP-PostRatings рейтинга постов в WordPress”

  • Валентин   11.07.2017

    Здравствуйте. Если вам не сложно, укажите пожалуйста, как на страницах категорий и тегов сделать фильтр вывода постов по возрастанию / убыванию рейтинга. В single.php и в превью постов на страницах категорий и тегов рейтинг уже выведен.

    Заранее спасибо

  • Tod   15.07.2017

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

  • Андрей Балак   20.07.2017

    Здравствуйте! На сайте более 500 статей с самого начала стоял плагин wp postratings и создавал сниппеты нормально, почти все статьи. где-то недели две назад начали выпадать звезды и сейчас ниодна статья не выводит голосование в выдаче, если смотреть через конструкцию site:life-reactor.com то все статьи со сниппетом. Что может быть?

  • Tod   20.07.2017

    Андрей, проверил в гугле 90% позиций на 1-2стр. отображаются с голосованием, странно почему у вас не так.
    В теории, старые не обновленные модули могут использовать какие-то конструкции, которые со временем поисковики убирают, но плагин WP-PostRatings вполне актуальный и, повторюсь, у меня в выдаче по вашему сайту все ок. Посмотрите результаты через vpn/tor.

  • Oleg   11.08.2017

    Подскажите с толкнулся с проблемой — плагин установился но при выводе на странице сразу под звездами для оценки статьи появляется надпись loading и нажатие для оценки не принимается, что-то не то с хостингом??

  • Tod   11.08.2017

    Oleg, очень похоже на то, что в файле футера footer.php вашего шаблона нет функции wp_footer(); — проверьте и, если ее нет, добавьте. Если есть, то я бы еще разок переустановил модуль либо же попробовал его без других плагинов и с базовой темой.

  • Oleg   11.08.2017

    Да проблема в теме но функция футер там есть, что делать не знаю?

  • Tod   11.08.2017

    Oleg, нужно искать в каком именно файле темы проблема либо сменить шаблон. Код модуля точно добавляли в внутри цикла Loop? Придется внимательно разбираться с темой в любом случае.

  • Антон   18.09.2017

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

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

  • Tod   18.09.2017

    Антон, если я правильно понял суть проблемы, то я бы попробовал выводить на главной конкретную страницу/запись в «Настройки» — «Чтение», если этого еще не сделано. В таком случае, по идее, система будет воспринимать и выводить текущую оценку.
    Либо поискать альтернативный модуль — все же этот больше ориентирован на «оценку» (рейтинг). Возможно, нужно гуглить wordpress reviews plugin.

  • Роман   05.01.2018

    А реально, в гугле то уже рейтинг не отображается. Кто как решил проблему ?

  • Tod   07.01.2018

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

  • MrVector   30.01.2018

    А можно как то сделать, чтобы рейтинг не выводился на определенных страницах сайта? Например на этой страничке, в правой колонке под списком микростоков supermicrostock.ru/forum/ начали выводится звезды. Они мне не очень нужны

  • Tod   30.01.2018

    MrVector, можно — используйте условный оператор is_page(ID_Страницы) или is_single(ID_поста) и добавляйте в шаблон блок IF дабы определить где не выводить рейтинг.

  • MrVector   31.01.2018

    Этот оператор нужно размещать в файлах шаблона темы или самого плагина?

  • Tod   31.01.2018

    MrVector, проверка делается в файлах шаблона, пралгины вообще желательно не трогать никогда.

  • MrVector   31.01.2018

    Подскажите пожалуйста, а что нужно написать чтобы рейтинг пропал со страницы с id 15861

  • Tod   01.02.2018

    MrVector, что-то вроде:
    if (!is_page('15861')) {
    // вставляете функцию вывода рейтинга
    }

  • MrVector   01.02.2018

    Большое спасибо) все работает как часы)

  • Alex   18.02.2018

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

  • Tod   18.02.2018

    Alex, скорее всего, какой-то из стилей влияет на картинки, можно попробовать добавить в css:

    .post-ratings img {
        display: inline;
    }

    Иногда приходится использовать float: left;

  • erto   19.03.2018

    Добрый вечер! Подскажите, пожалуйста, как вывести рейтинг, который поставил автор записи?

  • Tod   19.03.2018

    erto, выводить такое с помощью готовых методов из модуля вряд ли возможно… Я когда-то делал одну модификацию (хотя и топорную) следующим образом — выбираете одну из базовых функций (которую не используете), и потом в PHP коде плагина уже через функции Вордпресс выводите то, что вам нужно. В данном случае надо посмотреть SQL запрос, который бы учитывал автора записи. Готовый код, увы, не подскажу.

  • RF clipart   27.07.2018

    Спасиба за хороший плагин!

  • Александр   06.12.2019

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

  • Tod   10.12.2019

    Александр, тут делается рейтинг именно записей/постов… поэтом, у если вы сможете организовать конкурс и вывод информации на сайте так, чтобы в каждом отдельном посте была одна картинка, то то реально. Хотя я бы поискал какие-то альтернативные варианты плагинов, где функция фотогалерея включает в себя возможность голосования. Если не получится найти, то можно «заморочиться» с постами и этим модулем.

  • Алексей   18.03.2021

    Спасибо за плагин, очень хорошо работает!!! Но мы хотим расширить функционал и вывести рейтинг пользователя исходя их кол-во оценок, поставленных его именно записям. Т.е. у нас на сайте несколько зарегистрированных пользователей, и к записям каждого из них добавляется определенный рейтинг. Вопрос — что можно ли посчитать общий суммарный рейтинг всех записей определенного пользователя?

    С Уважением,

    Алексей

  • Tod   20.03.2021

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

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


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

Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:

Поиск:
Последние посты
Лучшее в категории

Облако тегов
Скажи свое мнение!

В чем основные плюсы Wordpress?

Посмотреть результаты

Загрузка ... Загрузка ...
Друзья проекта
Последние новости