Янв
31
252

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

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

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

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

  • Аббас   26.10.2014

    Добрый день! Помогите, пожалуйста. Ни как не могу разобраться. Стоит плагин, только он почему-то не работает на всех страницах, например на этой alievy.com.ua/chezh/, не выводит itemscope itemtype=»http://schema.org/Article»
    А вот например на этой странице работает alievy.com.ua/resorts/praga/
    Не могу понять в чем проблема :(

  • Tod   27.10.2014

    Аббас, у меня работает на обеих страницах, возможно у вас просто кэш на странице не обновился.

  • Аббас   27.10.2014

    Tod, спасибо за то, что ответили :) Звездочки выводятся и нормально работают на странице, только вот их нету если проверять через https://www.google.com/webmasters/tools/richsnippets.
    Почему-то плагин не выводит строку itemscope itemtype=»http://schema.org/Article
    Уже как две недели пробую, ничего не выходит…

  • Tod   28.10.2014

    Аббас, ну это уже другой вопрос, ответ на который, увы, я дать не могу)

  • Андрей   12.12.2014

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

  • Tod   13.12.2014

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

  • Дмитрий Кудеев   19.12.2014

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

  • Tod   20.12.2014

    Дмитрий, это вопрос стилей, можно попробовать использовать что-то вроде — div.название_класса img {display: inline} где название класса подставляете то, который отвечает за голосование.

  • Дмитрий Кудеев   20.12.2014

    Tod, Андрей, нашел я выход. В цсс стиль темы в конце добавил следующий код:

    /* Post Ratings */
    .post-ratings IMG, .post-ratings-loading IMG, .post-ratings-image IMG {
    display: inline;
    }

  • Андрей   20.12.2014

    Дмитрий спасибо большое!

  • Дмитрий   23.12.2014

    А как отобразить ТОЛЬКО звезды (без надписей типа: голосов — 554, средний балл: 5,82 из 7)?

  • Tod   23.12.2014

    Дмитрий, нужно отредактировать шаблоны отображения результатов в Ratings Templates, убрав оттуда ненужный текст.

  • Игорь   01.01.2015

    Здравствуйте, как настроить плагин под разметку http://schema.org/Recipe по умолчанию настроен на http://schema.org/Article . Разработчик немного написал на эту тему, но я не знаю английский да и в коде не силен. В файле wp-postratings.php полностью удалил:
    // HTML Attributes
    if( is_single() || is_page() ) {
    $itemtype = apply_filters(‘wp_postratings_schema_itemtype’, ‘itemscope itemtype=»http://schema.org/Article»‘);
    $attributes = ‘id=»post-ratings-‘.$ratings_id.'» class=»post-ratings» ‘.$itemtype;
    } else {
    $attributes = ‘id=»post-ratings-‘.$ratings_id.'» class=»post-ratings»‘;
    }
    Но теперь проблемы с голосованием.
    И еще как избавиться от сообщения: Please rate only 1 post at a time.
    Какую настройку применить?
    Всех с новым годом и заранее, спасибо!

  • Tod   01.01.2015

    Игорь, я не подскажу, так как не сталкивался с вопросом. Если самому сложно разобраться, то лучше заказать у кого-то эту правку.

  • Влак   10.01.2015

    А как сделать, чтоб голосовать могли только зарегистрированные пользователи сайта?

  • Tod   11.01.2015

    Влак, в настройках плагина Post Ratings Options есть пукнт Who Is Allowed To Rate где можно выбрать «только зарегистрированные пользователи».

  • Maxim   17.02.2015

    Tod, привет! Всем привет! Так и не разобрался в установке. Куда вставлять код… Подскажите, пжлста, куда вставлять? Читаю:
    Usage
    — Open wp-content/themes//index.php
    — You may place it in archive.php, single.php, post.php or page.php also.
    — Find:
    — Add Anywhere Below It (The Place You Want The Ratings To Show):

    Нужно в index.php? И после закрывающего «?>»?

    Заранее благодарю за помощь!

    Мой WordPress:
    WordPress ver. 4.1, тема Twenty Fifteen ver. 1.0, WP-PostRatings ver. 1.80

  • Tod   18.02.2015

    Maxim, код нужно размещать внутри цикла Loop будь то index.php или archive.php — дабы для каждой отображаемой записи был свой рейтинг. В single.php, post.php можно добавлять практически в любое место шаблона. Лучше вариант разобрать — попробовать добавить код и посмотреть что выйдет.

  • Maxim   18.02.2015

    Tod, спасибо за ответ! С большим трудом — разобрался. В моём случае:
    WordPress ver. 4.1, тема Twenty Fifteen ver. 1.0, WP-PostRatings ver. 1.80
    Код нужно вставлять в файл: content.php (находится он в корне темы), отвечает только за записи. Рейтинг на страницы — я не разбирался куда вставлять, мне нужно было только на записи.

  • Александр   25.02.2015

    Здравствуйте! Делаю новый блог и захотел на него поставить WP-PostRatings. Взял шаблон green-grapes, вставил код опроса, но он почему-то не работает. Таких шаблонов у меня 2 вида, но с одним дизайном. На одном звёзды отображаются, но постоянно крутится «loading», а на другом всё отображается но невозможно проголосовать, как и в первом случаи! На других шаблонах работает всё нормально! Вот ссылка, в конце статьи опрос, посмотрите пожалуйста alkotema.ru/kak_izbavitsja_ot_peregara Мне этот шаблон очень нужен, помогите, пожалуйста!

  • Tod   25.02.2015

    Александр, попробуйте проверить есть ли функции wp_head() и wp_footer() в header.php и footer.php соответственно. Если нет, добавьте.

  • Антон   10.03.2015

    Возможна ли интеграция (и как) плагина с комментариями так чтобы можно было оставлять комментарий только после оценки записи?

  • Tod   11.03.2015

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

  • Zawer   31.03.2015

    Установил данный плагин. рейтинг показывает, но толку от него не много.

  • Source   01.04.2015

    Zawer, а какого, собственно, толка вы хотели от него?

  • Екатерина   21.04.2015

    Здравствуйте. А вы не подскажите, как выводить разные картинки звездочек в списке записей и в самой записи?Точнее можно ли осуществить это с данным плагином?

  • Tod   22.04.2015

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

  • Роман   08.07.2015

    Звезды вывелись
    при нажатии вылетает
    Please rate only 1 post at a time.
    и не учитывается оценка

    что делать?
    спасибо

  • Tod   09.07.2015

    Роман, насколько я понял, плагин думает, что вы уже один раз голосовали и не дает сделать это повторно. Посмотрите настройки Ratings Logging Method, там можно выбрать как отслеживать голосующих (по Ip, cookie и т.п). Пару раз у меня был такой глюк вроде бы, возможно, это было связано с кэшированием — оценка осталась, хотя я голосовал.

  • Роман   09.07.2015

    А у меня оценка не появляется
    Звездочки не активны, не выделяются

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


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

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

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

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

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

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