Янв
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 рынка, где найдете рейтинг форекс брокеров а также много другой ценной информации по теме.

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

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

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

  • Довран   02.04.2013

    Спасибо за информацию, очень помогла! Мыслью по древу растекаться не буду, ибо ссылки на блог в комментарии не поставил :)

  • Alexander   01.05.2013

    Попробую установить этот плагин. Вот еще кстати есть GD Star Raiting, но он немного сложноват в настройке на мой взгляд.

  • Анна Коцаба   10.05.2013

    Установила, вроде все правильно настроила, звезды выбрала, но не отображается в статьях. С чем может быть связано, подскажите?

  • Tod   11.05.2013

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

  • Роман   13.05.2013

    Как изменить результаты рейтинга? Например, при настройке плагина я по ошибке одну из записей оценил на 2. Удилил этот рейтинг из базы данных, но ничего не поменялось.

  • Tod   14.05.2013

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

  • Otshelnik-fm   14.05.2013

    Роман вы это серьезно? :-)

    Нажимаете ту запись, которой рейтинг хотите поменять, на редактирование. И у вас три произвольных поля: ratings_average = 7.5, ratings_score = 15 и ratings_users = 2 (числа взял для примера. первое — средний рейтинг. второе поле общий, третье — количество проголосовавших людей. Ну а дальше математика:. 15 делим на 2 = 7.5)

  • vova   19.05.2013

    Может подскажете, как в нем сделать рейтинг поста по нескольким параметрам , тоесть как мультисет в GD Star Raiting ???

  • Tod   20.05.2013

    vova, к сожалению, не смогу подсказать. Более того, не факт, что здесь такое есть, плагины ведь разные.

  • Алекс   10.06.2013

    Давно искал хороший плагин, отлично работает.
    Выражаю Благодарность автору

  • July   22.06.2013

    В общем, GD star rating гораздо функциональнее и удобнее.

  • Валерий   09.07.2013

    Плагин хорош, но к сожалению перестал отображать кто и за кого голосовал. Общее число оценок считает но в таблице изменений нет. Раньше работал. Может последнее обновление

  • Роман   18.07.2013

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

  • Tod   18.07.2013

    Роман, дата выводится с помощью функции the_time. Вообще тут есть 2 варианта — либо скачать шаблон, который содержит вывод нужных вам вещей, либо гуглить по типу «wordpress post date» и вы сразу найдете нужную функцию на официальном сайте системы.

  • Роман   19.07.2013

    Добрый день! установил рейтинг комментариев, а он английский. Как мне сделать его как у вас — русским? И вопрос еще один — какой шаблон вы используете? хочу указание дат сверху по блогу)

  • Виталий   04.08.2013

    Подскажите как удалить (очистить) все оценки чтобы они короче обнулились в рейтинге?

  • Tod   05.08.2013

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

  • Андрей   08.09.2013

    Спасибо за статью. Плагин установил, код для отображения рейтинга вставил.
    Но вот проблема: рейтинг почему-то не кликабелен. Проверил в двух браузерах: Хром и Опера.
    В чем может быть дело, не подскажете?

  • Tod   08.09.2013

    Андрей, попробуйте добавить в файл футера строку:

    <?php wp_footer(); ?>

    Также может быть какая-то несовместимость плагинов.

  • Андрей   08.09.2013

    Нашел решение. Как и у многих тут отписавшихся, не хватало

    p.s. как иногда полезно читать комменты))

  • Елена   19.09.2013

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

  • Tod   20.09.2013

    Елена, сложно сказать, потому что проблема может быть в чем угодно. Сначала я бы посмотрел настройки плагина — там есть ограничения, позволяющие запретить массовое голосование. Можете попросить знакомых проголосовать с другим компьютеров для теста, если вы пробуете сами, то из-за ограничений сможете проголосовать только один раз. Потом я бы поотключал все плагины дабы проверить совместимость. И самое последнее — нужно учитывать что последнее обновление плагина было в 2009 году, с тех пор вышло много новых версия вордпресс — вполне возможно есть какая несовместимость.

  • Елена   20.09.2013

    Спасибо, вроде разобралась)

  • Степан   04.10.2013

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

  • Tod   05.10.2013

    Степан, вывести значение рейтинга через цифры можно, подправив шаблон. А вот избавиться от звездочек — сложный вопрос. Там по идее все через скрипт какой-то сделано, при наведении они «реагируют». Можно посмотреть php код плагина и убрать возможность клика — я бы действовал как-то так.

  • Андрей   06.10.2013

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

  • Мирослав   08.11.2013

    У меня все вышло, но звездочки выводятся в новой строчке :( Например, я хочу вывести как в этой статье, после слов «Оцените статью:», но у меня выходит, что слова «Оцените статью» в одной строчке, а звездочки в следующей, помогите советом плиз

    Еще интересно, как вы сделали отображение лишь тега alt при наведении на звездочку (пока еще не оценен пост), у меня текст дублируется еще под звездочками

  • Tod   10.11.2013

    Отображение в одну строку делается через CSS, свойство display: inline; То есть текст перед звездочками у меня находится в DIV с классом post-ratings, а для него стиль по типу:

    .post-ratings, .post-ratings img {
        display: inline;
        font-size: 11px;
        line-height: 12px;
        padding-top: 3px !important;
        vertical-align: top !important;
    }

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

  • Mikola   08.01.2014

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

  • Tod   08.01.2014

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

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


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

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

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

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

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

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

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