Плагин WP-PostRatings рейтинга постов в 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 — удалить плагин.
В настройках вы можете выбрать различные варианты того, как будет отображаться оценивание — будь то обычный «+» и «-» либо количественная оценка в виде «звездочек». Их число, кстати, можно указывать такое как вам нужно.
Если хотите чтобы для изображений использовался не 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 рынка, где найдете рейтинг форекс брокеров а также много другой ценной информации по теме.
комментариев 298 к статье “Плагин WP-PostRatings рейтинга постов в WordPress”
Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Як сховати відсутні товари в Woocommerce шорткодах та схожих товарах
- Сервіс AdMaven + плагін для монетизації трафіка на WordPress сайтах
- Плагіни для створення стрічки новин з біжучим рядком в WordPress
- Як змінити розміщення кнопки оформлення замовлення в WooCommerce
- Плагін WHWS Display In Stock Products First – відображення товарів в наявності першими
- Підписка MonsterONE: чи варто використовувати цей сервіс у 2023 році? (+5 продуктів, які треба скачати в першу чергу)
- Онлайн генератор ссылок на мессенджеры для WordPress и не только
- WooCommerce (46)
- Безопасность (12)
- Видео (6)
- Виджеты (28)
- Возможности (141)
- Вопрос-ответ (6)
- Начинающим (52)
- Новости (46)
- Оптимизация (23)
- Плагины (246)
- Сервисы (87)
- Хаки и секреты (87)
- Шаблоны (45)
- Плагин WP-PostRatings рейтинга постов в WordPress (5,79 из 7, голосов - 934)
- Оптимизируем WordPress header и удаляем лишний код (5,19 из 7, голосов - 43)
- Кэширование в wordpress — выбираем лучший плагин для кэширования (5,63 из 7, голосов - 35)
- Плагин WP01 расскажет как ускорить и оптимизировать сайт на WordPress (4,48 из 7, голосов - 31)
- Оптимизация и ускорение Elementor – как убрать лишние стили и шрифты (3,58 из 7, голосов - 36)
- WP-Optimize — плагин для оптимизации базы данных в WordPress (4,58 из 7, голосов - 24)
- Плагины кэширования Hyper Cache + DB Cache Reloaded Fix для wordpress (5,41 из 7, голосов - 17)
- Дизайн Мания - о веб-дизайне и не только.
- Tod's Blog - все про заработок онлайн.
- Вебдванольные заметки - обзоры веб-сервисов.
- Советы по выбору холодильника LG с технологией No Frost
- Зачем нужны Wi-Fi ретрансляторы и как выбрать подходящую модель
- Введение в онлайн-казино Slotor777: многообразие игр и привлекательные бонусы
- Необходимость использования облачного хранилища в наше время, что важно и как выгодно?
- Спрощення процесу звітності за допомогою програми BAS Бухгалтерія
- Технологія підключення інтернету GPON та її переваги
- За що гравці найбільше цінують Lineage 2
- Для каких проектов нужна аренда виртуального сервера и что такое VPS
Александр, не могу знать наверняка… может установка конфликтующего плагина, изменения в шаблоне, которые повлекли появление какой-то ошибки или конфликта… это нужно тестировать, пробовать и разбираться.
Добрый день ! У меня на сайте, если я после каждой записи вношу в ручную , то рейтинг под этими записями даже не высвечивается. Не подскажите, где искать ошибку ?
Заранее очень благодарен
Я вставил код с Вашей странице, а он был удален. Поэтому сверху получилась не полная запись. Т.е. надо читать У меня на сайте, после каждой записи,я вношу в ручную код для высвечивания рейтинга. Но к сожалению ничего даже не высвечивается. Подскажите пожалуйста в чем ошибка
Александр, нужно добавлять код плагина в шаблоне, он будет работать только так — то есть в файле единичной записи single.php, не в постах блога (если я правильно понял причину проблемы).
Здравствуйте. Подскажите а как сделать что-бы пользователь мог проголосовать только один раз за определенную статью? Сейчас при обновлении есть возможность еще раз проголосовать
Александр, я точно не помню, но вроде бы где-то в настройках можно указать «фильтрацию» повторных голосований с помощью кукисов или IP… Тестировал на свое блоге когда-то два раза мне лично голосовать не получалось — выводила сообщение что мол вы уже отдали свой голос.
single.php у меня есть, а archiv.php у меня он отсутствует, что делать, куда вставлять это — ?
Sabri, если нет шаблона для архивов, то используется код из index.php.
как настроить рейтинг так, чтобы он отображался, допустим по записью?
Здравствуйте! Спасибо за статью. Подскажите, пожалуйста, как в Highest Rated Post выводить миниатюры записей? Что нужно указать в Rating Templates? Заранее спасибо!
Алексей, по умолчанию в плагине нет такой опции. Если это реально нужно, то тут не обойтись без правки PHP файла модуля. Алгоритм следующий — выбираете один из вариантов отображения, например «Highest Rated Post», находите в PHP файле место где этот блок «обрабатывается и выводится», добавляете туда к заголовку еще и картинку от поста. Процедура весьма сложная, если честно, надо разбираться в PHP.
Подскажите куда нужно вставлять код для вывода самых лучших публикаций ? Создал отдельный шаблон страницы, вставил в него, не работает.
ExAnimal, вод плагина нужно вставлять в файлы шаблона (не посты). Не работать может по разными причинам — нужно искать ошибку, попробовать без отдельного шаблона сначала, а с тем, который есть. Попробовать другие места размещения.
Спасибо большое за подробное и доступное изложение материала, благодаря вам поставила и настроила этот плагин.
Действительно хороший плагин, спасибо автору — разложил все по полочкам, проблем в установке и использовании не наблюдалось.
Спасибо ! Все получилось с первого раза.
Подскажите, пожалуйста, а как вывести голосование вверху и внизу страницы одновременно? При повторной вставке внизу страницы этого кода — второй раз голосование не работает.
Антон, не думаю что это возможно.
Здравствуйте, подскажите, пожалуйста.
Возможно, чтобы заходя на главную страницу человек видел названия статей, и под названием размещался рейтинг ее , но голосовать можно было только зайдя на саму страницу статьи?
Ила, думаю, без правки php кода модуля тут не обойтись — выводить только значение или картинки, без скрипта голосования. Либо поискать другой модуль. Но лично я с таким не сталкивался, поэтому сложно подсказать.
Ила, я думаю можно.
После title выводим произвольное поле ratings_average ( например get_post_meta($post->ID, ‘ratings_average’, true) — добавляем все проверки потом), например у него записано значение 8.67. эти 8.67 сопоставляем с количеством звёзд и выводим на страницу.
Чуток правки php, и результат готов.
Помогите, пожалуйста. Возник еще один вопрос.
У меня стоит рейтинг в сердцах. Как сделать, чтобы при повторном нажатии голос снимался, а не выдавало что-то вроде «вы уже проголосовали, голосовать второй раз нельзя».
Это возможно сделать?
Илона, нет, такого функционала в плагине нет.. сообщение предупреждает что уже голосовали, а голос не засчитывается.
а есть подобное только с рейтингом авторов ??
у меня на вордпресе стоит доска объявлений и мне нужно что бы рейтинг пользователей был
объявления публикуются как обычные записи поэтому я думаю и рейтинг авторов сойдет
Евгений, нужно искать соответствующий модуль.
Подскажите, как сделать такой же рейтинг, как у вас на сайте? Очень нужен код, чтобы я мог вывести его у себя на сайте:)
Серёга — а вы эту статью читали? Тут этот рейтинг и описывается. Или чукча писатель, а не читатель?
Здравствуйте! Можно ли увеличить размер рейтинга? Он какой-то мелкий, и теряется у меня на странице.
Илья, думаю можно попробовать вариант с «подменой картинок», то есть найти изображение звездочек рейтинга и загрузить вместо базовых свои побольше.
в папке плагина wp-postratings\images\ создаете свою папку (я назвал beoff) туда помещаете увеличенные картинки рейтингов (rating_half-rtl.gif , rating_half.gif, rating_off.gif, rating_on.gif, rating_over.gif), потом в админке заходите в настройки рейтинга Ratings Settings и выбираете ваши новые рейтинги. У меня на сайте так заработало без проблем.