Как полностью использовать все возможности плагина WP-Postratings 1.40, с примерами
Это конечно все в принципе написано в реадми на “ангельском” языке, но туда обычно никто не смотрит, либо не до конца понимает суть. Рассмотрим детально с примерами использования. Если вы еще этого не сделали, то скачайте плагин здесь (в PowerPack сборках 2.7* он также есть)
Как вставить в шаблон блок для рейтингов
Найдите в ваших файлах шаблона (index.php, post.php, page.php и некоторых других в некоторых “темах”)
строку вида
<?php while (have_posts()) : the_post(); ?>
Добавьте где нибудь ниже, в том месте где будете выводить блок, код
<?php if(function_exists('the_ratings')) { the_ratings(); } ?>
Например вот как это сделано у меня:
<?php while (have_posts()) : the_post(); ?></p>
<p> <div class="post"><br />
<h2 class="post-title"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2><br />
<p class="post-info"> <em class="date"><?php the_time('j F Y в G:i'); ?></em><em class="user"><?php the_author_posts_link() ?></em><em class="cat"><?php the_category(' &amp; ') ?></em> <?php if ( is_sticky() ) echo 'Прикреплено'; ?></p></p>
<p> <div class="entry"><br />
<?php the_content('<br />Продолжить чтение &amp;rarr;'); ?><br />
<?php wp_link_pages(); ?><br />
<p class="post-comments"><br />
<?php comments_popup_link('Комментариев нет', 'Комментарий всего 1 &amp;#187;', 'Комментариев: % &amp;#187;'); ?> </p><br />
<p class="post-tags"><?php the_tags('Метки: ', ', ', '<br />');?></p><br />
<?php if(function_exists('the_ratings')) { the_ratings(); } ?><br />
</div><br />
</div><br />
<?php endwhile; ?><br />
<?php else : ?><br />
<p>:-)</p></p>
<p> <?php endif; ?>
Если же вы не хотите использовать рейтинги в каждой записи, а только в избранных, то НЕ вставляйте код, указанный выше. Вместо этого используйте код
[ ratings ]
в тексте записи (в указанных кодах уберите пробелы возле скобок, если будете копировать отсюда)
Если вы хотите в текст записи поместить рейтинг другой записи, то используйте код
[ ratings id="1" ]
, где 1 – ID нужной записи/страницы, рейтинг которой вы показываете (в указанных кодах уберите пробелы возле скобок, если будете копировать отсюда)
Если вы хотите в текст записи поместить результаты рейтинга другой записи, то используйте код
[ ratings id="1" results="true" ]
, где 1 – ID нужной записи/страницы, рейтинг которой вы показываете (в указанных кодах уберите пробелы возле скобок, если будете копировать отсюда)
Как показать рейтинг, выставленный за пост комментатором в плагине WP-Postratings 1.40
В версии плагина 1.31 (для WordPress 2.6*) все было просто – вставлялся определенный код в нужное место шаблона комментариев и все. В новой версии это перестало работать (хотя на функцию в шаблоне “не ругалось”). В новой версии стало все немного неудобно:
Нужно открыть файл wp-postratings.php
Найти строку 393
//add_filter('comment_text', 'comment_author_ratings_filter');
и раскомментировать ее (убрать //)
Далее найти блок, начиная со строки 424 (
<br />
$output .= '<div class="post-ratings-comment-author">';<br />
if($post_ratings_images != '') {<br />
$output .= get_comment_author().' ratings for this post: '.$post_ratings_images;<br />
} else {<br />
$output .= get_comment_author().' did not rate this post.';<br />
}<br />
$output .= '</div>';</p>
<p>
)
где
$output .= get_comment_author().' ratings for this post: '.$post_ratings_images;
– это то что выводится, если комментатор проголосовал и
$output .= get_comment_author().' did not rate this post.';
– если он не проголосовал.
Ну во первых все это не локализовано “через файл перевода”, а просто вписано в текст плагина, во вторых необязательно ведь писать какой либо текст, если комментатор не оставил голоса.
Например я сделал так:
$output .= '<div class="post-ratings-comment-author">';<br />
if($post_ratings_images != '') {<br />
$output .= $post_ratings_images;<br />
} else {<br />
$output .= '';<br />
}<br />
$output .= '</div>';
т.е. если голос есть – выведется его значение (картинкой, в том же стиле что и общий рейтинг), а если голоса нет – ничего не покажет. Конечно вы можете и оставить какой то свой текст, впридачу к рейтингу
также если открыть файл postratings-css.css и найти там блок
.post-ratings-comment-author {<br />
font-weight: normal;<br />
font-style: italic;<br />
}
то можно изменить стиль этого блока, где выводится рейтинг. Если вы не хотите ковырять файл стилей плагина – создайте файл с таким же названием в папке вашей темы (он имеет приоритет) и создайте в ней точно такой же стиль (можно просто скопировать файл из папки плагина и изменить под себя).
Как использовать PNG картинки вместо GIF
Откройте файл wp-postratings.php и найдите там блок кода
define('RATINGS_IMG_EXT', 'gif');<br />
//define('RATINGS_IMG_EXT', 'png');<br />
замените его на
//define('RATINGS_IMG_EXT', 'gif');<br />
define('RATINGS_IMG_EXT', 'png');
В InternetExplorer версий 5, 5.5, 6 иногда получается так что текст возле рейтингов выглядит “страшно”, а точнее получается “контрастная обводка вокруг символов” (это же относится и к плагину WP-Polls). Причем баг этот не всегда виден, т.е. на одном компьютере в IE6 он будет виден, а на другом будет все нормально, но лучше сделать маленький хак, который заложен уже автором плагина.
Решается все тривиально просто:
Открываем postratings-css.css и находим там строку
/* background-color: #ffffff; */
Раскомментируем ее и заменяем (если требуется) цвет, где цвет – это цвет вашего фона страницы/блока где выводится рейтинг. #FFFFFF – это белый (на всякий случай, если кто не в курсе), т.е. в общем случае (если у вас фон страниц белый), то получится
background-color: #ffffff;
Обновляем страницу в браузере и радуемся.
Как вывести записи с самым низким рейтингом
В нужно месте шаблона (вне блока вывода (LOOP)) вставляем код
<?php if (function_exists('get_lowest_rated')): ?><br />
<ul><br />
<?php get_lowest_rated(); ?><br />
</ul><br />
<?php endif; ?>
Кому то этого будет достаточно, но можно и поиграться с настройками. Например запрос
get_lowest_rated('both', 0, 10)<br />
покажет 10 самых нерейтинговых записей и страниц, у которых даже нет голосов.
Первый параметр может иметь значения both, post и page, т.е. выводить ВСЕ, ТОЛЬКО ЗАПИСИ, ТОЛЬКО СТРАНИЦЫ
Второй параметр (в данном случае равный 0) – количество голосов для отбора
Третий параметр (в данном случае равный 10) – количество позиций
(запомните это – во всех других рейтингах все аналогично, если встатите в конструкции запроса аналогичные параметры)
Т.е. если мы сделаем вывод
get_lowest_rated('post', 5, 20)<br />
то получим 20 самых нерейтинговых записей у которых есть уже как минимум 5 голосов (грубо говоря если за запись проголосовали 5 раз с низкими рейтингами то она “попадет в этот топ”, если конечно не найдется другая запись с худшим рейтингом
В продолжение: Как вывести записи с самым низким рейтингом, но только из заданных рубрик
<?php if (function_exists('get_lowest_rated_category')): ?><br />
<ul><br />
<?php get_lowest_rated_category(CATEGORY_ID); ?><br />
</ul><br />
<?php endif; ?>
запрос также можно изменять по шаблону
get_lowest_rated_category(CATEGORY_ID, 'both', 0, 10)
где CATEGORY_ID – ID вашей рубрики или массива нескольких рубрик. Если рубрика одна, то пишем просто к примеру цифру 2, но если рубрик несколько, то пишем array(1, 2) – т.е. рубрики 1 и 2
Остальные параметры аналигичны рассмотренным выше
Например
<?php if (function_exists('get_lowest_rated_category')): ?><br />
<ul><br />
<?php get_lowest_rated_category(array(4, 33, 11), 'post', 6, 5); ?><br />
</ul><br />
<?php endif; ?>
выведет 5 позиций, за каждую из которых оставили как минимум 6 голосов и которые присутствуют только в рубриках с ID 4, 33 или 11
Как вывести записи с высоким рейтингом
<?php if (function_exists('get_highest_rated')): ?><br />
<ul><br />
<?php get_highest_rated(); ?><br />
</ul><br />
<?php endif; ?>
Тут все аналогично
get_highest_rated('both', 0, 10)
– задаем тип записей, количество голосов и количество записей для отбора
В продолжение: Как вывести записи с высоким рейтингом, но только из заданных рубрик
<?php if (function_exists('get_highest_rated_category')): ?><br />
<ul><br />
<?php get_highest_rated_category(CATEGORY_ID); ?><br />
</ul><br />
<?php endif; ?>
полностью конструкция запроса повторяет рассмотренную выше “с низким”
Как вывести список записей с высоким рейтингом за заданный период
<?php if (function_exists('get_highest_rated_range')): ?><br />
<ul><br />
<?php get_highest_rated_range('1 day'); ?><br />
</ul><br />
<?php endif; ?>
где можно поиграть с параметрами
get_highest_rated_range('1 day', 'both', 10)
первый параметр это срок, т.е. количество дней, месяцев. лет. Может принимать значения к примеру: ‘5 days’, ‘1 month’ и т.д., второй параметр мы рассматривали выше, а третий это количество позиций
Как вывести записи, за которые чаще всего голосовали
<?php if (function_exists('get_most_rated')): ?><br />
<ul><br />
<?php get_most_rated(); ?><br />
</ul><br />
<?php endif; ?>
get_most_rated('both', 0, 10)
– также все просто: 1 параметр – тип записей, 2 параметр – количество голосов, 3 параметр – количество записей.
Например запрос
get_most_rated('both', 40, 50)
должен вывести 50 записей, за которые оставили как минимум 40 голосов
В продолжение: Как вывести записи, за которые чаще всего голосовали из определенных рубрик
<?php if (function_exists('get_most_rated_category')): ?><br />
<ul><br />
<?php get_most_rated_category(CATEGORY_ID); ?><br />
</ul><br />
<?php endif; ?>
get_most_rated_category(CATEGORY_ID, 'both', 0, 10)
– параметры запроса аналогичные тем, что описаны выше в похожих функциях
Как вывести записи, за которые чаще всего голосовали за определенный период
get_most_rated_range('1 day', 'both', 10)
– аналогично функции, рассмотренной выше, только там выводится список с высоким рейтингом, а здесь просто с большим количеством голосов
а вот что делать с этим я так и не понял….
Чтобы отсортировать записи с наибольшим/наименьшим рейтингом,
вы можете использовать код в шаблоне<?php query_posts($query_string.'&amp;amp;r_sortby=highest_rated&amp;amp;r_orderby=desc') ?>или вставить переменные в URL
http://yoursite.com/?r_sortby=highest_rated&amp;amp;r_orderby=descгде вам нужно заменить desc на asc если вы хотите наименее оцененные записи.
Чтобы отсортировать наиболее/наименее оцениваемые записи,
вы можете использовать код в шаблоне<?php query_posts($query_string.'&amp;amp;r_sortby=most_rated&amp;amp;r_orderby=desc') ?>или вставить переменные в URL
http://yoursite.com/?r_sortby=most_rated&amp;amp;r_orderby=descгде вам нужно заменить desc на asc если вы хотите наименее оцененные записи
Рубрики: Wordpress Метки: 2.7, Wordpress, инструкция, плагин
Распечатать

(голосов: 69, средний: 4.45 из 5)
