Янв
31
268

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

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

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

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

  • Tod   29.08.2016

    Евгений, можно добавить в шаблон условие in_category для проверки принадлежности поста к определенной рубрики.

  • владимир   30.08.2016

    Для каталога интернет-магазинов это очень хороший плагин, но есть вопрос: как выставить рейтинг только для определенных постов в архивах?

  • Tod   31.08.2016

    Владимир, нужно добавлять условие IF в шаблон в зависимости от нужного вам условия. Выше упоминал функцию in_category для проверки наличия в категории, есть и другие.

  • Валерий   17.11.2016

    А что за плагин выводит рейтинг на вашем сайте? Он отличается от того, что может предложить WP-PostRating. Я, к примеру, так и не смог добиться изменения текста при наведении на звёздочки, там так и осталось отображаться: 1 оценки, среднее 3.50 из 5. Видимо настройка текста, что задаётся в «Шаблоны оценок» не распространяется на альт и тайтл. Ибо там я заменил слово «оценка» на «голос», а «среднее» на «средний балл»
    В этой связи хотелось бы ваше решение использовать.

  • Tod   17.11.2016

    Валерий, текст на звездочказ задается в «Ratings Options», опция Individual Rating Text/Value, где вводите разные значения для оценок. Там где у меня фраза про число оценок и средний бал — это в опциях «Ratings Templates» (возможно, вы не для того пункта поменяли фразу и она не отобразилась, там есть для уже голосовавших или еще нет). Насколько я помню, сам код плагина я не менял, хотя не исключаю такой возможности:) Давно просто это было все.

  • Валерий   19.11.2016

    Спасибо за исчерпывающий ответ :-)

  • Андрей   15.12.2016

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

  • Tod   15.12.2016

    Андрей, нужно искать соответсвующий плагин — я видел похожую реализацию в каких-то темах, посмотрите шаблоны «кино/игры» или поищите модуль в репозитории. Я с такой задачей пока не сталкивался.

  • Сергей   15.02.2017

    Добрый день!

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

  • Tod   16.02.2017

    Сергей, обычно звездочки не работают, когда в файле футера шаблона отсутствует wp_footer(). У меня 2 предположения — либо вы в single разместили код вне цикла Loop, либо не подгружаются скрипты плагина.

  • Маг Диггер   10.03.2017

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

  • Tod   11.03.2017

    Маг Диггер, тут 2 нюанса, во-первых, нужно как-то разобраться с вставкой PHP кода на страницу. Возможно пригодится статья про создание разных шаблонов постов. Со страницами там чуть по-другому.
    Второй нюанс — вставка списка популярных постов. Если я не ошибаюсь это делается так:
    <?php if (function_exists('get_highest_rated')): ?>
    <?php get_highest_rated(); ?>
    <?php endif; ?>

    В описании плагина на официальном сайте есть и другие приемы.

  • Creo   27.03.2017

    Есть такая мысль, думаю как реализовать:
    Нужно сделать отображение ТОП5 самых резиновых постов с картинкой, которая содержится в заголовке. То есть не просто заголовок и рейтинг, а еще добавить фотографию.
    что бы это выглядело примерно так, как на скриншоте: http://kmdb.pp.ua/temp/wprating_q.jpg

    Заранее благодарю!

  • Tod   28.03.2017

    Creo, я помню, когда-то мне пришлось реализовать такое через правку php кода плагина. Нужно было искать в исходном коде где выводится, например, заголовок для статьи, а затем добавлять туда вызов функции миниатюр the_post_thumbnail. Но сейчас в настройках шаблона модуля есть переменная %POST_THUMBNAIL% — попробуйте ее.

  • Creo   28.03.2017

    Tod, спасибо за ответ.
    Я толком не нашел где именно в плагине код, отвечающий за отображение рейтинга.
    Если подскажешь — буду премного благодарен.
    А вот за %POST_THUMBNAILS% отдельное спасибо, не заметил. Видимо внимательности не хватило!

  • Tod   28.03.2017

    Creo, где точно располагается код не вспомню, я просто запускаю WinGrep и ищу в файлах модуля например тот же POST_THUMBNAILS или можно находить определенные названия стилей в HTML коды, которые генерирует плагин.

  • Creo   29.03.2017

    Tod, еще раз спасибо за помощь. Разобрался.
    Самый простой вариант: в настройках плагина есть шаблоны. Я подправил шаблон «Самая высокая оценка» просто добавив переменную %POST_THUMBNAIL%
    В итоге получилось то, что я хотел.

  • Tod   29.03.2017

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

  • Pipec   14.04.2017

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

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

  • Tod   14.04.2017

    Pipec, к сожалению, код в комментариях не вставился, но вопрос понятен. Попробуйте использовать последний пример кода из статьи. Если не поможет я бы посмотрел настройки «шаблонов отображения» модуля в админке.

  • Pipec   14.04.2017

    Tod, я пробовал вставить, он выводит звезды и кол-во голосов, но они ни к чему не привязаны, т.е. в анонсе статьи они появляются, но не связаны с рейтингом внутри статьи. При этом, если я вставляю непосредственно в код блока самого анонса, то появляется возможность голосовать на главной странице, но, при голосовании за одну статью, голос присваивается всем статьям)))

  • Pipec   16.04.2017

    Tod, спасибо большое за помощь по почте! Удачи!

  • Богдан   23.04.2017

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

  • Tod   24.04.2017

    Богдан, по-моему данный плагин не позволяет добавлять рейтинги в комментарии, а только (посты, страницы) — что-то об этом читал, когда разбирался с ним. Вы уверены, что модуль позволяет такое реализовывать?

  • Pipec   24.04.2017

    Богдан, плагин «WP-PostRatings» не позволяет организовать систему рейтинга комментариев. Используйте плагин комментариев «Comments — wpDiscuz». В нем присутствует нужная Вам функция.

  • Tod   25.04.2017

    Pipec, спасибо за подсказку, мне тоже пригодится этот модуль)

  • Vasyl   27.04.2017

    Добрый день, возможно ли вывести посты с рейтингом не выше 3-х к примеру?

  • Tod   27.04.2017

    Vasyl, базовыми средствами плагина — нет, в примерах из описания такая фишка не упоминается. Единственный вариант — править php код модуля и вносить свои правки в логику его работы.

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


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

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

Последние посты
Лучшее в категории
Облако тегов
Скажи свое мнение!

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

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

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