Янв
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”

  • Николай   03.02.2014

    Tod, а можно ли вручную вставлять рейтинг в нужную статью, в нужном месте? Мне он нужен не во всех статьях.

  • Tod   04.02.2014

    Николай, единственный вариант, который приходит на ум, — использовать условные операторы wordpress по аналогии с выводом текста только на главной. Добавляете в шаблон условие выводить рейтинг только на определенных страница / статьях / категориях.

  • Sergey   10.02.2014

    Здравствуйте! Подскажите пожалуйста, а как локализовать надписи рейтинга , к примеру — (NO RATINGS YET) и (1 VOTES, AVERAGE: 5,00 OUT OF 5, RATED) я вот у вас посмотрел — Оцените статью: (голосов — 425, средний балл: 5,84 из 7) , как также сделать? где файл с этими надписями или может в самом плагине можно менять?

  • Tod   11.02.2014

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

  • Александр   08.04.2014

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

  • Tod   09.04.2014

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

  • Юрий   22.05.2014

    Sergey, в админке вордпресс в разделе с настройками плагина Ratings есть пункт «Ratings Templates» – там шаблоны задаются, можно менять тексты.

    Это хороший ответ конечно, но как это сделать на практике???????

  • Tod   24.05.2014

    Юрий, делать на практике именно то, что сказано в ответе. А что там непонятно?

  • Михаил   05.07.2014

    Tod, а где можно вписывать эти функции. Например, если я в Imdex.php перед циклом впишу:

    На сколько єто будет верно и будет ли єто работать?

  • computeroman   06.07.2014

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

  • Tod   07.07.2014

    computeroman, если звездочки не кликабельны, то можно попробовать добавить в footer.php

    <?php wp_footer(); ?>
  • Tod   07.07.2014

    Михаил, если нужно выводить «звездочки голосования» для страницы со списком постов (главная, архив, категория), тогда функцию вызова the_ratings нужно писать внутри цикла. Дабы она применялась ко всем постам.

  • computeroman   07.07.2014

    Не работает и так. Вы куда его вставляли на свой блог?

  • Tod   08.07.2014

    computeroman, у меня код расположен внутри цикла в index.php и для единичной записи после поста в single.php. Попробуйте заново установить плагин. Может он конфликтует с каким-то другим модулем.

  • twins   20.07.2014

    Здраствуйте, подскажите как сделать чтобы рейтинг отображался ниже превью изображений в рубриках, и при этом показывал информацию рейтинга относящуюся к посту, как это реализовано http://seoprofy.ua/blog ….облазил уже весь интернет, немогу найти решение…

  • Tod   21.07.2014

    twins, это самый обычный вариант отображения рейтинга (по-умолчанию), о котором я рассказывал даже в этой заметке. Просто разработчики с помощью CSS стилей расположили «звездочки» под картинкой.

  • twins   21.07.2014

    Спасибо за ответ. Абсолютно верно, но на сайте http://seoprofy.ua/blog , в рубрике нельзя голосавать в рейтинге, рейтинг не активен, а данные тянутся из страницы поста….вот как такое реализовать?

  • Сергей   04.08.2014

    У меня есть блог, на нем стоит этот плагин, но в блоге есть 2 записи на которых рейтинг не нужен, это «соглашение» и «добавить новость». Как можно его там убрать, вручную вставлять [rating] в каждой записи не хочется)) тем более, что некоторые статьи добавляют люди через голую форму

  • Tod   05.08.2014

    Сергей, нужно в место шаблона, где выводится функция рейтинга добавить дополнительное условие (IF) + функцию is_single http://codex.wordpress.org/Function_Reference/is_single дабы проверять «если это страница соглашения и добавить новость, то выводить рейтинг не нужно». Это для страницы полного отображения записи (Single). В index.php, archive.php нужно по такому же принципу сделать проверку по ID поста.

  • twins   18.08.2014

    Нашел ответ на свой вопрос за бугром….
    Функция для рейтинга которая позволяет отображать результат рейтинга в рубрики,но не дает возможность голосовать:
    <?php if(function_exists('the_ratings')) { echo expand_ratings_template('%RATINGS_IMAGES% %RATINGS_USERS% votes‘, get_the_ID()); } ?>

    Ее нужно вставить в шаблон рубрики вместо:

  • Сергей   19.08.2014

    Tod, twins Спасибо за помощь

  • Елена   17.09.2014

    Спасибо за разъяснение всех моментов, а то не программистам совсем не понять, как это делается. Сколько смотрела инструкций, ваша лучшая. Главное, что этот плагин звездочки сразу в сниппет добавляет :)

  • Николай   20.09.2014

    Здравствуйте. когда я в single.php вставляю код:
    ?php if(function_exists(‘the_ratings’)) { the_ratings(); } ?
    на сайте вся правая колонка съезжает вниз. В чём может быть проблема?

  • Tod   20.09.2014

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

  • Тарас   02.10.2014

    Добрый день.

    Нужна помощь. Подскажите, пожалуйста, нужна ли корректировка кода, если я добавляю рейтинг через виджет темы? В данный момент на странице отображается только заголовок и -N/A

  • Tod   04.10.2014

    Тарас, не могу подсказать, с этим плагином я виджеты не использовал.

  • Макс   07.10.2014

    Можно вопрос. А как сделать что бы посты с самым большим рейтингом выводились на главную??

  • Tod   08.10.2014

    Макс, нужно добавить код отображения постов с большим рейтингом Highest Rated Post в шаблон главной страницы index.php или home.php. Не знаю насколько это правильно с точки зрения разработки под wordpress, слегка смахивает на «топорное решение». Возможно, кстати, есть какие-то плагины для этих целей.

  • Otshelnik-fm   08.10.2014

    Макс, Так информация хранится в произвольном поле ratings_average — по нему в цикле и выводите значение

  • Макс   09.10.2014

    Помогло это решение. Вставил на новой странице

    <?php query_posts('posts_per_page=10&r_sortby=highest_rated'); ?>
    <?php if(have_posts()) : ?>
    <?php while(have_posts()) : the_post(); ?>
    <div class="rogame"> 
    <a href="<?php echo get_permalink(); ? rel="nofollow">"> <?php if ( has_post_thumbnail() ) { the_post_thumbnail( 'topthumb' ); }?> </a> 
    <a href="<?php echo get_permalink(); ? rel="nofollow">"><?php the_title(); ?></a>
    </div>
    <?php endwhile; ?>
    <?php endif; ?> 
     
    <?php wp_reset_query(); // сброс запроса ?>

    и подробнее page=10 это количество выводимых новостей. ( можно поменять на своё количество нужное). Если убрать то будут все на одной странице и всвалку свалены.

    Вставлять надо туда куда нужно что бы выводились.

    Если нужно выводить на отдельную страницу то нужно создать файл в папке с шаблоном и назвать его page-x.php где х — айди вашего поста( но лучше сюда не лезть и просто вставить на главную)

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


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

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

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

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

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

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

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