Плагин 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
Евгений, можно добавить в шаблон условие in_category для проверки принадлежности поста к определенной рубрики.
Для каталога интернет-магазинов это очень хороший плагин, но есть вопрос: как выставить рейтинг только для определенных постов в архивах?
Владимир, нужно добавлять условие IF в шаблон в зависимости от нужного вам условия. Выше упоминал функцию in_category для проверки наличия в категории, есть и другие.
А что за плагин выводит рейтинг на вашем сайте? Он отличается от того, что может предложить WP-PostRating. Я, к примеру, так и не смог добиться изменения текста при наведении на звёздочки, там так и осталось отображаться: 1 оценки, среднее 3.50 из 5. Видимо настройка текста, что задаётся в «Шаблоны оценок» не распространяется на альт и тайтл. Ибо там я заменил слово «оценка» на «голос», а «среднее» на «средний балл»
В этой связи хотелось бы ваше решение использовать.
Валерий, текст на звездочказ задается в «Ratings Options», опция Individual Rating Text/Value, где вводите разные значения для оценок. Там где у меня фраза про число оценок и средний бал — это в опциях «Ratings Templates» (возможно, вы не для того пункта поменяли фразу и она не отобразилась, там есть для уже голосовавших или еще нет). Насколько я помню, сам код плагина я не менял, хотя не исключаю такой возможности:) Давно просто это было все.
Спасибо за исчерпывающий ответ :-)
Добрый день!
Подскажите как можно реализовать рейтинг записей по нескольким параметрам. Т.е. допустим у каждой записи есть 5 параметров для оценки: интересность, практичность, оформление, качество и т.д. и т.п. Необходимо чтобы пользователь мог оценивать любой из этих параметров по пятибалльной шкале. А я в любом месте мог вывести либо среднюю оценку записи, либо оценку по определенному параметру. А так же мог создавать архивы самых интересных записей, либо отсортировать записи по параметру практичности и т.д.
Андрей, нужно искать соответсвующий плагин — я видел похожую реализацию в каких-то темах, посмотрите шаблоны «кино/игры» или поищите модуль в репозитории. Я с такой задачей пока не сталкивался.
Добрый день!
у меня такая проблема плагин не работает имена страницы поста single.php и а в остальных местах работает, а там стоят звездочки на них совсем не возможно нажать, не знаете в чем может быть проблема на сайте нет плагин кеширования и нечего такого чтобы ему мешало
Сергей, обычно звездочки не работают, когда в файле футера шаблона отсутствует wp_footer(). У меня 2 предположения — либо вы в single разместили код вне цикла Loop, либо не подгружаются скрипты плагина.
Скажите, пожалуйста, как мне используя этот плагин рейтингов создать страницу с записями, рейтинг которых самый высокий. Я начинающий веб мастер.
Маг Диггер, тут 2 нюанса, во-первых, нужно как-то разобраться с вставкой PHP кода на страницу. Возможно пригодится статья про создание разных шаблонов постов. Со страницами там чуть по-другому.
Второй нюанс — вставка списка популярных постов. Если я не ошибаюсь это делается так:
<?php if (function_exists('get_highest_rated')): ?>
<?php get_highest_rated(); ?>
<?php endif; ?>
В описании плагина на официальном сайте есть и другие приемы.
Есть такая мысль, думаю как реализовать:
Нужно сделать отображение ТОП5 самых резиновых постов с картинкой, которая содержится в заголовке. То есть не просто заголовок и рейтинг, а еще добавить фотографию.
что бы это выглядело примерно так, как на скриншоте: http://kmdb.pp.ua/temp/wprating_q.jpg
Заранее благодарю!
Creo, я помню, когда-то мне пришлось реализовать такое через правку php кода плагина. Нужно было искать в исходном коде где выводится, например, заголовок для статьи, а затем добавлять туда вызов функции миниатюр the_post_thumbnail. Но сейчас в настройках шаблона модуля есть переменная %POST_THUMBNAIL% — попробуйте ее.
Tod, спасибо за ответ.
Я толком не нашел где именно в плагине код, отвечающий за отображение рейтинга.
Если подскажешь — буду премного благодарен.
А вот за %POST_THUMBNAILS% отдельное спасибо, не заметил. Видимо внимательности не хватило!
Creo, где точно располагается код не вспомню, я просто запускаю WinGrep и ищу в файлах модуля например тот же POST_THUMBNAILS или можно находить определенные названия стилей в HTML коды, которые генерирует плагин.
Tod, еще раз спасибо за помощь. Разобрался.
Самый простой вариант: в настройках плагина есть шаблоны. Я подправил шаблон «Самая высокая оценка» просто добавив переменную %POST_THUMBNAIL%
В итоге получилось то, что я хотел.
Creo, да, это самый простой и правильный метод. Не зря же разработчики внедряли функцию шаблонов отображения))
Добрый день. Подскажите, пожалуйста, как реализовать. Я подкючил данный плагин в цикл с помощью функции:
В одиночных постах все отображается замечательно. Так вот в чем вопрос, как мне вывести только результаты (без возможности голосования) на главную страницу в анонсы статей?
Pipec, к сожалению, код в комментариях не вставился, но вопрос понятен. Попробуйте использовать последний пример кода из статьи. Если не поможет я бы посмотрел настройки «шаблонов отображения» модуля в админке.
Tod, я пробовал вставить, он выводит звезды и кол-во голосов, но они ни к чему не привязаны, т.е. в анонсе статьи они появляются, но не связаны с рейтингом внутри статьи. При этом, если я вставляю непосредственно в код блока самого анонса, то появляется возможность голосовать на главной странице, но, при голосовании за одну статью, голос присваивается всем статьям)))
Tod, спасибо большое за помощь по почте! Удачи!
Здравствуйте!!! Прошу Вас помочь. Я вставил код рейтинг в статью, а также в форму добавления комментария, когда я навожу на рейтинг в статье, то все нормально, звезды меняются, а вот когда навожу на рейтинг в комментариях звезды не меняются, а видно как они меняются на статью. Помогите пожалуйста!
Богдан, по-моему данный плагин не позволяет добавлять рейтинги в комментарии, а только (посты, страницы) — что-то об этом читал, когда разбирался с ним. Вы уверены, что модуль позволяет такое реализовывать?
Богдан, плагин «WP-PostRatings» не позволяет организовать систему рейтинга комментариев. Используйте плагин комментариев «Comments — wpDiscuz». В нем присутствует нужная Вам функция.
Pipec, спасибо за подсказку, мне тоже пригодится этот модуль)
Добрый день, возможно ли вывести посты с рейтингом не выше 3-х к примеру?
Vasyl, базовыми средствами плагина — нет, в примерах из описания такая фишка не упоминается. Единственный вариант — править php код модуля и вносить свои правки в логику его работы.
Tod, привет! Всем привет!
Как добавить WP-PostRatings на wordpress 4.8?
Делаю всё по инструкции, добавляю код в эти файлы:
wp-content/themes//index.php
wp-content/themes//archive.php
wp-content/themes//single.php
wp-content/themes//post.php
wp-content/themes//page.php
А звёздочки отображаются чуть выше, там где подвал «Сделано на вордпресс…»
Заранее благодарю за ответ!
Maxim, возможно, вам попалась «современная сложная» тема, где отображение постов находится в других файлах. Тут нужно внимательно изучить конструкцию шаблона и посмотреть где именно выводятся сообщения блога. Возьмите к примеру файл single.php и посмотрите не вызываются ли из него другие файлы. Если так — просмотрите их. Располагайте под сразу после функции the_content или the_excerpt. Для списков постов ищите конструкцию if have_posts while have_posts… о которой сказано в статье.
Если рейтинг выводится — уже хорошо, вам просто нужно попробовать добавить его в разные части шаблона, посмотреть результат и понять где должен быть код. Все шаблоны разные и одного четкого ответа нет, увы.