Янв
31
280

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

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

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

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

  • Tony   31.01.2011

    Очень нравится, что можно устанавливать порог оценки. У себя использую кнопки в виде жестов «Нравится/Не нравится». Не знаю, какие оценки нравится ставить посетителям: там где есть шкала, как минимум из пяти баллов или просто нажать «Нравится» или «Не нравится».

  • c_coder   31.01.2011

    Ай яй яй =) а что унас яндекс директ разрешил использования вместе с adsense xD?

  • TIgor   31.01.2011

    Сам давно использую этот плагин. Правда пользователи очень редко ставят оценки. По себе знаю, что чем шире шкала, тем труднее сделать выбор. Когда у ютуба было 5 звездочек, то долга возился с оценкой. А теперь у них только нравится/нет и клацаю чаще.

  • Tod   01.02.2011

    c_coder, да оно всегда так было разрешено + еще бегун можно ставить без проблем.
    Tony, TIgor, вот я думал перед созданием, шкала из 5-ти это неприменимо, так как я же не буду сочинять откровенную гадость и оценивать 1-2 баллами редко кто будет, поэтому добавил 7 позиций, начиная с 4-ой это типа «нормально», «хорошо», «классная статья» и «в закладки», но это как бы мое видение ситуации, поэтому не факт, что приживется. Поэтому, наверное, + / — более простая и часто используемая специфика рейтинга, хотя ведь — мало кто будет нажимать тоже, скорее основной вопрос в том кто наберет больше плюсов.

  • Андрей   01.02.2011

    Извиняюсь, но не нашёл постов по интересующей тематики…
    У меня вопрос…
    И проблема((
    се ссылки с блога идут через редирект.

    Я плагинов не ставил, go.php удалял (после этого ссылки вообще не работали, оно то и понятно, т.к. код автоматически прописывается с приставкой http:// мойбог .ru/go.php?site=….
    Как можно исправить?
    Может в БД ковырнуть?Только что за функция за это отвечает?
    Спасибо!
    Ещё раз сорри…

  • Tod   01.02.2011

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

  • Владимир   02.02.2011

    Судя по описанию интересный плагин. Спасибо за статеку, понравилась!

  • Slam   04.02.2011

    Здравствуйте,

    Мне вот интересно, можно ли использовать данный плагин для выведения популярных постов на главной странице?
    Давно уже ищу способ, как дать возможность людям вести свои под-блоги на вордпрессе. Блоги будут отображаться в скрытой категории и не выводится на главную, но вот если бы рейтинг этого поста переваливал там, к примеру, 10 положительных голосов, он попадал в луп и выводился с остальными на главной.
    Закрутил конечно и наверное мне нужно цмс поменять, но это не так просто, к сожалению :(

  • Tod   05.02.2011

    Slam, чтобы лучше посты в разных блогах выводились на главной этот плагин, думаю, не поможет. Если копаться в коде плагина и выводить, допустим, на странице блога не только заголовок, но и краткий анонс поста — это можно, но вот как это совместить с «подблогами» непонятно. Если подблоги это статьи разных авторов, то вполне вероятно все получится. Я тут на днях напишу пост о некоторых хаках с WP-PostRatings возможно пригодится для решения этой задачи.
    Хотя с другой стороны может быть и специальный плагин для этих целей типа превратить блог в мини digg проект (что как я понял вам и нужно).

  • Slam   05.02.2011

    В том то и юмор, что я не могу найти подходящего плагина :( Есть плагин blog in blog, но он просто скрывает категорию от отображения на главной и все посты, которые в эту категорию входя, на главной не отображаются, но их можно сгруппировать на отдельной странице.

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

  • Андрей   05.02.2011

    Спасибо я всё решил =)

  • WebKill   08.02.2011

    WP-PostRatings — классный плагин, тоже писал о нем в обзоре — http://webkill.org/Полезные-плагины-wordpress

  • eldar   15.02.2011

    Надо будет установить у себя обязательно) Спасибо за подробный обзор

  • Denis_Chuprina   21.02.2011

    Наверное и себе поставлю, спасибо за большой обзор)

  • Otshelnik-Fm   11.03.2011

    а вот почему объясните мне этот замечательный плагин такой тормозной?
    вот что wp tuner показывает: plugin wp-postratings 15 10 3,538.3 12 — 3,538.3 это 3.5 секунды выполнения, а цифра 12 — это запросы бд. Прикол в том что на главной странице я не вывожу рейтинг никак. А он почему-то делает 12 запросов… просто вывожу записи.

    SELECT rating_username, rating_rating, rating_ip FROM qwcs_ratings WHERE rating_postid = 15670
    [wp-content\plugins\wp-postratings\wp-postratings.php(300): wpdb->get_results()]

    а запись 15670 — это просто тамбнейл (картинка) с ссылкой на пост

    Сайт этот не доступен из внешки тока багрепорты и скрины могу предоставить

  • Tod   12.03.2011

    Otshelnik-Fm, во-первых спасибо за wp tuner — искал что-то подобное, надо будет покопаться в нем, может еще знаете примеры подобных плагинов? Во-вторых, я вроде особой тормознутости за плагином не наблюдаю, поставил его вместо WP-PostViews, который, по идее, грузил систему чуть больше.

  • Otshelnik-Fm   13.03.2011

    аналогов wp tuner нету. а про WP-PostViews — есть альтернатива — функция которая меньше грузит блог http://wp-kama.ru/?p=55 . не сочтите за рекламу но Kama — очень хороший блог.

    Далее по теме — с postratings немного справился — просто уменьшив количество записей на главной странице (запросы от него также идут — но в меньшем количестве). Почему они вообще там (ведь как писал я не вывожу там рейтинг — только заголовки постов и миниатюры) непонятно. Возможно то что версия не последняя. но блог пока обновлять не готов.

  • Tod   14.03.2011

    Otshelnik-Fm, спасибо за ссылку, действительно функция интересная. По запросам, возможно, плагин считывает информацию в любом случае, а потом в зависимости от шаблоны выводит ее или нет — то есть будь на главной посты, он postratings будет работать (но это теория).
    По альтернативной функции — хороший пример, но ее одной, увы, для замены плагин мало — я вывожу несколько разных блоков — популярные посты из категории, непопулярные и т.п. Одним подсчетом не обойтись, вот если бы был готовый плагин. Из альтернативных модулей нашел парочку решений, но пока не смотрел их эффективность (как будет время потестирую с wp tuner).

  • Фруталити   31.03.2011

    Не возникало конфликтов у js?

    Я просто юзаю jquery 1.5.1, поставил этот плагин, а он, в свою очередь, юзает jquery 1.4.4. Насколько я могу судить, из-за этого голосование не работает — запросы на изменение рейтинга банально не отправляются.

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

  • Tod   02.04.2011

    Фруталити, пока что проблем не возникало, поэтому ничего конкретного не подскажу.

  • Фруталити   02.04.2011

    Проблему решил, оказалось дело не в js, а в отсутствии в моей теме в футере функции wp_footer(). Добавил — все заработало.

  • Tod   03.04.2011

    Фруталити, да точно, забыл, сразу нужно проверять наличие wp_footer и wp_header для подобных плагинов.

  • Дмитрий   28.04.2011

    А не подскажите плагин, с помощью которого можно разместить две оценки на одном посту, в смысле например:
    1. Оцените книгу
    2. Оцените рецензию

  • Otshelnik-Fm   28.04.2011

    gd star rating попробуйте

  • Вадим   29.04.2011

    Добавляю этот плагин ввиде виджета в сайдбар и заметил интересную вещь: если в админке заголовок виджету писать по-английски, то рейтинг постов отображается на сайте, а если по-русски, то он не отображается. Почему?

  • Вадим   29.04.2011

    И как в этой конструкции:

    вывести звездочки?

  • Tod   29.04.2011

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

  • Вадим   02.05.2011

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

  • Алексей   02.05.2011

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

  • Tod   03.05.2011

    Алексей, скорее всего для этого придется писать какую-то простенькую функцию что-то вроде the_ratings2(), которая возвращает цифру, но это, наверное, не совсем правильно, учитывая что будет создаваться еще один запрос к базе данных и лишняя нагрузка на хостинг — может проще как-то по дизайну оформить чтобы голосование и рейтинг был в одном месте. Либо можно поступить хитрее и добавить в шаблон рейтинга который выводит эту информацию разные классы, а потом с помощью CSS один отображать до статьи, другой после — но это уже нужно знать хитрости CSS.

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


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

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

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

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

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

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