Это третья часть цикла о расширенных функциях блога на wordpress. Сегодня поговорим о рейтингах. Всего я проработал с 5 разными плагинами и хочу описать вам свой опыт.
Итак, мои задачи были такими.
Возможность кастомизировать вывод рейтинга. Т.е. я должен сам выбирать место куда будет вставлен рейтинг, также на его основе хотелось бы иметь возможность создавать рейтинг лучших статей. Ну и самое важное, чтобы плагин поддерживал микроразметку, которая добавляла звездочки в расширенный сниппет гугла.
Всего, моим требованиям подошли 3 плагина.
1. .
Очень известный и мощный плагин, я бы назвал его целым комбайном рейтингов. Так как позволяет настроить любые типы рейтингов. Как звездочки, так и рейтинги типа понравилось\не понравилось, выводить как угодно и где угодно, вести логи, управлять рейтингами и создавать различные топы на их основе. Но вот одна очень большая проблема — слишком навороченный.
Если вам нужны простые рейтинги, типа ключил и пользуешься — это не для вас, так как этот плагин создает огромную нагрузку на базу + создает такое кол-во таблиц в базе данных, что даже больше, чем в самом движке. Если вы захотите кастомизировать вывод рейтингов, то разобраться в плагине — очень не просто. Там нужно настроить кучу шаблонов — как будет показываться рейтинг до голосования, после, как будет выглядеть результат рейтинга и т.д. В общем, то, что сделать можно было проще — такое впечатление, что решили все усложнить.
Но плагин действительно очень мощный.
2. .
Один из лучших плагинов рейтинга. Поддерживает рейтинг как статей, так и комментариев. Есть набор разных звездочек. Есть возможность гибкой настройки вывода. Вот все в нем отлично, только набор звездочек мне не очень понравился. Хотелось бы каких-то побольше и симпатичней, а они мелкие все, поэтому решил поискать еще что-то.
3. .
Плагин малоизвестный, а зря. Наверное лучшее решение, если нужно установить рейтинг быстро.
Также я сделал страничку, где вывел топ статей на основе рейтинга плагина. Сделал в виде таблички, вот код
<table> <thead> <tr> <td>Заголовок</td> <td>Рейтинг</td> <td>Комментариев</td> </tr> </thead> <?php if(function_exists('kk_star_ratings_get')) : $top_rated_posts = array(); $top_rated_posts = kk_star_ratings_get(10); if(count($top_rated_posts)) : wp_reset_query(); foreach($top_rated_posts as $post) { $mypost = get_post($post->ID); $title = $mypost->post_title; $permalink = get_permalink($mypost->ID); $rating_score = $post->ratings; $com_count = get_comments_number($mypost->ID); echo '<tr><td><a href="'.$permalink.'">'.$title.'</a></td>'; echo '<td>'.$rating_score.'</td>'; echo'<td>'.$com_count.'</td></tr>'; wp_reset_query(); } endif; endif;?> </table>
А теперь поговорим о одной очень важной функции — это расширенные сниппеты гугла. Все три плагина имеют поддержку сниппетов, но есть одна проблемка. Последние 2 плагина, создают микроразметку и скрывают её от посетителей. В итоге, гугл вам даст расширенный сниппет с звездочками, но может скоро прийти письмецо, мол вы пытаетесь нас нае…ть, показывая микроразметку только поисковикам. Другими словами, блок с микроразметкой должен быть виден на странице. Я сделал это простым способом — блок открыл, но сделал в нем меленький шрифт — около 9px. И посетителям он виден, но и не настолько чтобы сильно мешал.
Для того, чтобы не скрывать блок, пришлось поковырять сам плагин. В папке плагина найдите index.php найдите строки
$markup.= '<span style="display:none;"> <div xmlns:v="http://rdf.data-vocabulary.org/#" typeof="v:Review-aggregate">
И удалите
style="display:none;"
Теперь блок будет виден, можно изменить span, сделав так
$markup.= '<span style="font-size:9px">
Это сделает блок с 9px шрифтом.
Ну а если вас интересует полноценная карма пользователей, где давались бы поинты за логин, написание статей, комментирование и т.д., то вам нужен плагин .
Небольшой бонус, я уже писал как-то, как сделать так, чтобы рейтинг на основе wp-postrating добавлял поинты автору статьи, т.е. чем больше рейтинг у статьи, тем выше становится рейтинг автора статьи. Но тот код, что я давал уже не работает. Новый код такой
Открываете файл wp-postraiting.php, ищите там строку
echo the_ratings_results($post_id, $post_ratings_users, $post_ratings_score, $post_ratings_average);
Перед ней вставляете
if( function_exists(‘cp_alterPoints’) && is_user_logged_in() ){ cp_alterPoints(cp_currentUser(), 1); }
Этот код увеличит рейтинг автора на единичку. Если нужно больше, меняйте цифру на свою.
Поисковые системы после всех действий, которые я описал, будут выводить расширенные сниппеты в результатах выдачи. Это даст какое-то преимущество над конкурентами у которого этого нет. Так как это привлекает взгляд и выглядит симпатично. Как-то так
1 часть — создаем возможность писать на сайте с фронтенда и редактировать профиль.
2 часть — Плагины для кастомизации логина (попапы, кастомизация стандартного логина, редиректы) и регистрации.
3 часть — Рейтинги статей
4 часть — виджеты социальных сетей и интеграция социальных сетей на сайт
Понравилась статья? - Подпишись.
Или поделись полезным с миром
Похожие статьи:
А зря! у Wp-postRatings есть недокументированная особенность которую я нашел пытаясь изменить «звёздочки», на свои. Можете посмотреть на моём сайте ужасов.
Ну так вот: заходите в плагины «wp-postratings\images\» — там папки. Папки называются так же как и в админке, в настройке плагина (wp-postratings/postratings-options.php). И просто создаете новую папку по аналогии. В ней размещаете ваши иконки rating_half-rtl.gif, rating_off.gif и тд. Заходите в настройки плагина и выбираете вашу папку 🙂
Готово!
да, я тоже нашел эту особенность, спасибо
Ваша статья помогла добавить на сайт страницу с рейтингом. Есть один вопрос — как количество комментариев вывести ссылкой, чтобы можно было сразу перейти к комментариям?
приблизительно так
Спасибо за быстрый ответ. Из примера в статье выше, таблица отображения рейтинга статей, куда вставить этот код чтобы вывести ссылки на комментарии?
не, в данном коде это не сработает. Нужно по-другому. В строчке где
нужно сделать так
Причем #comments — тут должно быть имя id который имеет слой с комментариями в вашей теме. Обычно он именно вот такой и есть.
Не подскажете, как вывести среднюю оценку в другом месте на странице, если я использую kk-raitings ? Заранее спасибо
GD star rating уже не поддерживается разработчиком, имейте в виду.