Плагин 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,41 из 7, голосов - 32)
- Оптимизация и ускорение Elementor – как убрать лишние стили и шрифты (3,68 из 7, голосов - 37)
- 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
Очень нравится, что можно устанавливать порог оценки. У себя использую кнопки в виде жестов «Нравится/Не нравится». Не знаю, какие оценки нравится ставить посетителям: там где есть шкала, как минимум из пяти баллов или просто нажать «Нравится» или «Не нравится».
Ай яй яй =) а что унас яндекс директ разрешил использования вместе с adsense xD?
Сам давно использую этот плагин. Правда пользователи очень редко ставят оценки. По себе знаю, что чем шире шкала, тем труднее сделать выбор. Когда у ютуба было 5 звездочек, то долга возился с оценкой. А теперь у них только нравится/нет и клацаю чаще.
c_coder, да оно всегда так было разрешено + еще бегун можно ставить без проблем.
Tony, TIgor, вот я думал перед созданием, шкала из 5-ти это неприменимо, так как я же не буду сочинять откровенную гадость и оценивать 1-2 баллами редко кто будет, поэтому добавил 7 позиций, начиная с 4-ой это типа «нормально», «хорошо», «классная статья» и «в закладки», но это как бы мое видение ситуации, поэтому не факт, что приживется. Поэтому, наверное, + / — более простая и часто используемая специфика рейтинга, хотя ведь — мало кто будет нажимать тоже, скорее основной вопрос в том кто наберет больше плюсов.
Извиняюсь, но не нашёл постов по интересующей тематики…
У меня вопрос…
И проблема((
се ссылки с блога идут через редирект.
Я плагинов не ставил, go.php удалял (после этого ссылки вообще не работали, оно то и понятно, т.к. код автоматически прописывается с приставкой http:// мойбог .ru/go.php?site=….
Как можно исправить?
Может в БД ковырнуть?Только что за функция за это отвечает?
Спасибо!
Ещё раз сорри…
Андрей, не совсем понял какие именно ссылки. во многих CMS линки на страницы, посты в базе хранятся непрямые, а генерируются с использованием правил Permalink и т.п., то есть если проблема в этом, нужно смотреть htaccess. Если вы о ссылках в самих текстах, то для исправления ссылок, если они сохранялись как редирект, скорее всего придется вручную все править.
Но вообще я сам с подобными не сталкивался, поэтому не знаю как и что там лучше сделать, возможно, поискать и задать вопрос на специализированном форуме по вордпресс.
Судя по описанию интересный плагин. Спасибо за статеку, понравилась!
Здравствуйте,
Мне вот интересно, можно ли использовать данный плагин для выведения популярных постов на главной странице?
Давно уже ищу способ, как дать возможность людям вести свои под-блоги на вордпрессе. Блоги будут отображаться в скрытой категории и не выводится на главную, но вот если бы рейтинг этого поста переваливал там, к примеру, 10 положительных голосов, он попадал в луп и выводился с остальными на главной.
Закрутил конечно и наверное мне нужно цмс поменять, но это не так просто, к сожалению :(
Slam, чтобы лучше посты в разных блогах выводились на главной этот плагин, думаю, не поможет. Если копаться в коде плагина и выводить, допустим, на странице блога не только заголовок, но и краткий анонс поста — это можно, но вот как это совместить с «подблогами» непонятно. Если подблоги это статьи разных авторов, то вполне вероятно все получится. Я тут на днях напишу пост о некоторых хаках с WP-PostRatings возможно пригодится для решения этой задачи.
Хотя с другой стороны может быть и специальный плагин для этих целей типа превратить блог в мини digg проект (что как я понял вам и нужно).
В том то и юмор, что я не могу найти подходящего плагина :( Есть плагин blog in blog, но он просто скрывает категорию от отображения на главной и все посты, которые в эту категорию входя, на главной не отображаются, но их можно сгруппировать на отдельной странице.
Я же, хочу сделать как на хабрахабре, где лучшие статьи, по результатам голосования или решению администратора, попадают в основной луп и отображаются на главной.
Спасибо я всё решил =)
WP-PostRatings — классный плагин, тоже писал о нем в обзоре — http://webkill.org/Полезные-плагины-wordpress
Надо будет установить у себя обязательно) Спасибо за подробный обзор
Наверное и себе поставлю, спасибо за большой обзор)
а вот почему объясните мне этот замечательный плагин такой тормозной?
вот что 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 — это просто тамбнейл (картинка) с ссылкой на пост
Сайт этот не доступен из внешки тока багрепорты и скрины могу предоставить
Otshelnik-Fm, во-первых спасибо за wp tuner — искал что-то подобное, надо будет покопаться в нем, может еще знаете примеры подобных плагинов? Во-вторых, я вроде особой тормознутости за плагином не наблюдаю, поставил его вместо WP-PostViews, который, по идее, грузил систему чуть больше.
аналогов wp tuner нету. а про WP-PostViews — есть альтернатива — функция которая меньше грузит блог http://wp-kama.ru/?p=55 . не сочтите за рекламу но Kama — очень хороший блог.
Далее по теме — с postratings немного справился — просто уменьшив количество записей на главной странице (запросы от него также идут — но в меньшем количестве). Почему они вообще там (ведь как писал я не вывожу там рейтинг — только заголовки постов и миниатюры) непонятно. Возможно то что версия не последняя. но блог пока обновлять не готов.
Otshelnik-Fm, спасибо за ссылку, действительно функция интересная. По запросам, возможно, плагин считывает информацию в любом случае, а потом в зависимости от шаблоны выводит ее или нет — то есть будь на главной посты, он postratings будет работать (но это теория).
По альтернативной функции — хороший пример, но ее одной, увы, для замены плагин мало — я вывожу несколько разных блоков — популярные посты из категории, непопулярные и т.п. Одним подсчетом не обойтись, вот если бы был готовый плагин. Из альтернативных модулей нашел парочку решений, но пока не смотрел их эффективность (как будет время потестирую с wp tuner).
Не возникало конфликтов у js?
Я просто юзаю jquery 1.5.1, поставил этот плагин, а он, в свою очередь, юзает jquery 1.4.4. Насколько я могу судить, из-за этого голосование не работает — запросы на изменение рейтинга банально не отправляются.
Пробовал отключить 1.4.4, тоже не работает, хотя появляется анимация ajax-загрузки. Буду дальше ковыряться, но вы, если знаете решение, отпишитесь тут, пожалуйста.
Фруталити, пока что проблем не возникало, поэтому ничего конкретного не подскажу.
Проблему решил, оказалось дело не в js, а в отсутствии в моей теме в футере функции wp_footer(). Добавил — все заработало.
Фруталити, да точно, забыл, сразу нужно проверять наличие wp_footer и wp_header для подобных плагинов.
А не подскажите плагин, с помощью которого можно разместить две оценки на одном посту, в смысле например:
1. Оцените книгу
2. Оцените рецензию
gd star rating попробуйте
Добавляю этот плагин ввиде виджета в сайдбар и заметил интересную вещь: если в админке заголовок виджету писать по-английски, то рейтинг постов отображается на сайте, а если по-русски, то он не отображается. Почему?
И как в этой конструкции:
вывести звездочки?
Вадим, по заголовку хз — я подключал плагин через шаблон, возможно, какая-то ошибка в виджете допущена разработчиками. Звездочки для голосования выводит функция the_ratings(), все остальные отображают результаты.
Самое интересное то, что на денвере все замечательно работает и с русским заголовком и с английским. При работе на хосте происходит трабл,
Скажите пожалуйста, а как мне вывести просто цифру (значение рейтинга), т.е. внизу у меня можно голосовать а просто цифру нужно выводить сверху. Как это реализовать?
Алексей, скорее всего для этого придется писать какую-то простенькую функцию что-то вроде the_ratings2(), которая возвращает цифру, но это, наверное, не совсем правильно, учитывая что будет создаваться еще один запрос к базе данных и лишняя нагрузка на хостинг — может проще как-то по дизайну оформить чтобы голосование и рейтинг был в одном месте. Либо можно поступить хитрее и добавить в шаблон рейтинга который выводит эту информацию разные классы, а потом с помощью CSS один отображать до статьи, другой после — но это уже нужно знать хитрости CSS.