Благодаря данному скрипту можно вывести рейтинг топ-комментаторов в сайдбаре вашего сайта.

топ комментаторы

Скрипт для отображения топ-комментаторов и как вывести его в sidebar.


10.08.2013 | Скрипты | Теги: комментария 34 | 15975 просмотров | Автор статьи: Александр Рус


Добрый день! В некоторых старых статьях я мельком намекал на то, что если на сайте будет установлено много плагинов, то его работа может существенно замедлиться. Лучшим вариантом из сложившейся ситуации будет замена некоторых плагинов на «голый код» с которым движок Wordpres-а работает куда лучше. И в этой статье я опишу как уставить скрипт «Топ-комментаторов» за место всем известного нам плагина Top Commentators Widget.

Идея эта совсем не новая и о самом скрипте я узнал благодаря другим блогерам. Посмотрев на их блогах, как выглядит и работает этот скрипт, я загорелся желанием поставить его на своем сайте.

Для поиска данного скрипта я обратился к Google. Спасибо тебе Google, что ты есть! :mrgreen:

Код я нашел, скачал и установил. Но возникла маленькая проблем ка. Список «Топ-комментаторов» так и не стал отображаться в сайдбаре моего блога. Как выяснил я позже, для отображения списка комментаторов в сайдбаре необходимо прописать так называемый шорткод,  но что бы он работал нам необходимо в файле function.php сделать небольшое изменение.

Итак, давайте все это разберем поподробнее. Ход наших действий:

  1.   Копируем код скрипта и устанавливаем себе на блог.
  2.   Прописываем стили.
  3.   Вставляем шорткод в sidebar.
  4.   Делаем шорткоды в сайдбаре рабочими.
  5.   Настройка.

 

1.Копируем код скрипта и устанавливаем себе на блог.

Копируем код расположенный ниже и вставляем его у себя в файле function.php, который находится в Админ панель->Внешний вид-> Редактор -> function.php. Вставлять код нужно после <?php

Вот и сам код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// комментаторы без плагина
function sp_top_commentator(){
global $wpdb;
$length = 8; // Максимальная длинна имени в символах, если стоит 0, то имя не обрезается
$month = true; // true - за текущий месяц, false - за все время
$comment = true; // показывать количество комментариев
$nofollow = true; // ссылки nofollow
$count = 12; // количество комментаторов
$col = 4; // количество колонок
$avatarSize = 55; // размер аватара
$exceptionEmail = 'krendelkar@mail.ru'; // мыла-исключения
$results = $wpdb->get_results('
SELECT
COUNT(comment_author_email) AS comments_count, comment_author_email, comment_author, comment_author_url
FROM
(select * from '.$wpdb->comments.' order by comment_ID desc) as pc
WHERE
comment_author_email != "" AND
comment_type = "" AND
comment_approved = 1 AND
comment_author_email NOT IN ('.preg_replace('/([\w\d\.\-_]+@[\w\d\.\-_]+)(,? ?)/','"\\1"\\2',$exceptionEmail).')'.
($month ? 'AND month(comment_date) = month(now()) AND year(comment_date) = year(now())' : '').
'GROUP BY
comment_author_email
ORDER BY
comments_count DESC
LIMIT '.$count
);
 
$output = "<div class='top-comment'><table><tr>";
$i = 0;
foreach($results as $result){
if ($i>=$col) {
$output .= "</tr><tr>";
$i = 0;
}
$i++;
$output .= "<td><div class='avatar-top'>".get_avatar($result->comment_author_email,$avatarSize)."</div><div class='avatar-comment'>";
if ($length and $length<mb_strlen($result->comment_author)) $result->comment_author = trim(mb_substr($result->comment_author, 0, $length)).'.';
if ($result->comment_author_url)
if ($nofollow)
$output .= "<a target='_blank' rel='nofollow' href='".$result->comment_author_url."'>".$result->comment_author."</a>";
else
$output .= "<a target='_blank' href='".$result->comment_author_url."'>".$result->comment_author."</a>";
else
$output .= $result->comment_author;
 
if ($comment) $output .= "(".$result->comments_count.")";
$output .= "<div style='clear:both;'></div></div></td>";
}
if ($i<=$col) $output .= "</tr>";
$output .= "</table></div>";
echo $output;
}
// комментаторы без плагина

2.  Прописываем стили.

Для хорошего визуального оформления и работы скрипта заходим в файл style.php и в конце дописываем  следующее:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//стили топ комментаторов
 
.top-comment {
height:100%;
}
 
.top-comment table {
min-height: 100%;
height:100%;
width:100%;
}
 
.top-comment table tr {
text-align:center;
vertical-align: top;
}
 
.top-comment table td {
padding:0 5px 15px 5px;
}
 
.top-comment .avatar-top img {
-webkit-box-shadow: #666 0px 2px 3px;
-moz-box-shadow: #666 0px 2px 3px;
box-shadow: #666 0px 2px 3px;
padding: 3px;
background: white;
border-image: initial;
border: 1px solid #D0D0BB;
margin: 0 0 3px 0;
}
 
.top-comment .avatar-comment {
font-size: 12px;
}
 
//стили топ комментаторов

 3. Вставляем шорткод в sidebar.

Как вы уже догадались, для того, что бы увидеть работу нашего скрипта, нам необходимо прописать в sidebar, который находится в Админ панель-> Внешний вид-> Виджеты  следующий код:

1
<?php sp_top_commentator(); ?>

4.Как заставить работать шорткоды в сайдбаре

Но это еще не все. Большинство блогов не поддерживают работу шоркодов в sidebar. Поэтому заходим в Админ панель->Внешний вид-> Редактор -> function.php и после надписи <?php вставляем этот код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
add_filter('widget_text','sp_widget_execute_php',100);
 
function sp_widget_execute_php($text)
 
{ if(strpos($text,'<?') !== false) { ob_start(); eval('?>'.$text);
 
$text = ob_get_contents();
 
ob_end_clean();
 
}
 
return $text;
}

5. Настройка

Ну и заключительным этапом является настройка. Все изменения введутся в самом коде, благодаря чему мы можем менять такие параметры как: размер аватара, число выводимых комментаторов, длина имен, изменять индексацию ссылки, количество колонок.

$length = 0; —  Максимальная длинна имени в символах, если стоит 0, то имя не обрезается. Советую немного обрезать имя, иначе из за длинных имен отображение аватаров сместиться и это будет выглдить не красиво.

$month = false; —  true — за текущий месяц, false — за все время. Если у вас блог сильно комментируемый, то ставьте  true

$comment = true;  —  показывать количество комментариев. Здесь по вашему желанию.

$nofollow = true; — ссылки nofollow. Если поставите false, то поисковые машины будут индексировать ссылки комментаторов, что отрицательно будет сказываться на вашем блоге.

$count = 12; — количество комментаторов. На ваше усмотрение.

$col = 3; — количество колонок.

$avatarSize = 40; — размер аватара. Эксперементируйте, подгоняйте к дизайну вашего блога.

$exceptionEmail = ‘mail1@dom.ru, mail2@mod.ru’; —  мыла-исключения. Обычно блогеры вписывают свои адреса почтовых ящиков, так как нет им смысла у себя на блоге находится на первом месте в рейтинге «топ-комментаторов».

P.S. — данный скрипт был разработан автором блога SEOлётика. За что ему большое спасибо!

Удачи Вам в работе!

 

Материалы по теме:

Как скрыть реферальную ссылку
Приветствую всех своих читателей. Давайте рассмотрим, как скрыть свою реферальную ссылку от пользователей. Чтоб при переходе умные пользователи не думали, что помогают, кому то зарабатывать. ...
Как добавить форму комментариев Vkontakte
Всем привет! Недавно, мне поступил заказ от клиента, он хотел, что бы я на его блоге разместил другую форму комментариев. От предложенного мною плагина ...
Виджет YouTube для сайта. Как это сделать.
Создание виджета при помощи html кода. Создание виджета при помощи плагина. Как узнать ID канала Youtube. Создание виджета через сайт Youtube. Всем привет! Сегодняшняя статья посвящается тем, кто ищет ...
Как при наведение на текст вывести дополнительное окно с подсказкой. Уроки HTML.
Добрый день! Друзья, не давно я наткнулся на один буржуйский сайт. Естественно этот сайт посвящен тематикам, которые подходят для наших блогов. Там авторы выкладывают ...
Скрипт для вывода количества просмотров страницы.
Всем привет. Давным давно, когда на этом блоге еще был другой шаблон, у меня в конце каждого поста, отображалось количество просмотров. В результате чего, можно ...

Нажимая на кнопку, я даю согласие на рассылку, обработку персональных данных и принимаю политику конфиденциальности.

1
Игорь http://vipinternetrabota.ru/

Сань,пользовался я скриптом около года.

А потом все слетело,не пойму что,пришлось установить плагин.

Автор2
Александр Рус (участник БКС) http://myworkpro.ru/

Может плагин какой то со скриптом конфликтует? У меня уже 2 год работает и все в порядке.

3
Игорь http://vipinternetrabota.ru/

Хотя на тестовом блоге,данный скрипт пошел.

Это лучше чем плагин,меньше нагрузки на движок.

4

Отличный скрипт! Скопировал, вставил и всё работает. Да и расписано всё очень грамотно. Необходимо избавляться от плагинов, всё-таки нагрузка будет меньше и глазу приятнее, когда видишь малый список установленных плагинов.

Автор5
Александр Рус (участник БКС) http://myworkpro.ru/

Один из самых лучших скриптов, мне он тоже нравиться, давно уже у меня стоит.

6
Антон http://financial-independence.ru

Нужно будет подумать. Думаю для начала устанавлю все плагины, потом приведу блог примерно к такому виду, как я на первое время его вижу, а дальше по возможности поменяю все что можно с плагином на скрипты 😉

Автор7
http://myworkpro.ru

Скрипты тоже могут грузить сайты, даже пострашнее плагинов. Зависит от числа запросов к серверу.

8

Ну вот, наконец-то мои руки добрались до этого скрипта. Только что всё сделал по вашей инструкции. Скрипт работает отлично. Пока что на денвере, но скоро и на сервере. Огромное вам спасибо!

9
Антон http://financial-independence.ru

А вы все сначало тестируете на денвере?

10

Естественно, так безопаснее. Если что-то пойдёт не так, то это можно легко исправить, не то что на сервере.

11
Антон http://financial-independence.ru

Кстати да, обычно я что-нибудь не то сделаю и потом в панике пытаюсь исправлять 😉 нужно будет вспомнить как денвер устанавливаеться и как с вордпрессом контаетирует. Думаю можно всё что хочу сделать сначало на компе отточить. 😉

12

У моего друга такая же проблема. Неужели только я один до этого додумался? Думаю, каждый блоггер беспокоится о сохранности своего детища.

Автор13
http://myworkpro.ru

В крайнем случаи Бэкап всегда выручит, так что не трусти:)

14

Ну с бэкапом также бывают проблемы на некоторых недобросовестных хостингах. А вообще кому как удобнее, просто некоторым не хочется засорять свой компьютером денвером.

15
Антон http://financial-independence.ru

Думал поставить себе плагин с топом комментаторов, но наверное легче код прописать, хотя..
Возник вопрос, а если менять дизайн и тему, нужно все заново прописывать? Если да, то с плагином легче 😉

Автор16
http://myworkpro.ru

Если менять тему, то нужно все заново прописывать, т.к. файл function.php у каждой темы свой отдельный.
А так, этот скрипт во много раз лучше плагина.

17
дед Виталя http://svital.com

Саша, а этот сккрипт будет полегче плагина?
А то я уже ставил себе в блог плагин с Топом лучших комментаторов, а сейчас хочу с помощью кода.
Стоит шкурка вычинки?

Автор18
http://myworkpro.ru

Скрипт в 100 раз лучше плагина. Я зуб ставлю, что это так! 😛

19

Пожалуй, добавлю эту страницу в закладки. Уж очень она мне понравилась) Может быть когда-нибудь попробую.

Автор20
Александр Рус (участник БКС) http://myworkpro.ru

Да, в самом начале после<?php вставляешь код топ комментаторов. Если комментарии отображаться не будут в сайдбаре, то тогда тебе надо вначале после <?php прописать это:

add_filter('widget_text','sp_widget_execute_php',100); function sp_widget_execute_php($text) { if(strpos($text,'<?') !== false) { ob_start(); eval('?>'.$text); $text = ob_get_contents(); ob_end_clean(); } return $text; }

а потом вставить сам код.

Автор21
Александр Рус (участник БКС) http://myworkpro.ru

Если будут проблемы стучись в скайп помогу. мой скайп meagol2

22
Олег Клышко http://klyshko.ru/

попробую второй раз установить. За ретвит спасибо. Меня забанили в ретвите что можно сделать не знаете?

23
Олег Клышко http://klyshko.ru/

я заговорился в твитере бан

Автор24
Александр Рус (участник БКС) http://myworkpro.ru

Просто так они банить не будут:)

25
Олег Клышко http://klyshko.ru/

начал действовать по инструкции сайт перестал открываться? Админ панель->Внешний вид-> Редактор -> function.php. Вставлять код нужно после <?php это php вначале стоит?

26
Игорь http://blogopraktika.ru/

Долгое время жил без топа комментаторов. Недавно поставил, веселее стало ))

27
дед Виталя http://svital.com

Вот и я вчера решился разжиться на Топ. Поставил сразу во второстепенном блоге. Сейчас поставлю и на главном, с которого пишу.
Ещё раз спасибо за статью, Саша! Всё получилось чётко 😉

Автор28
Александр Рус (участник БКС) http://myworkpro.ru

Ага, народ начинает сразу блог комментировать. Плюс в скрипке есть код с выводом лучших комментаторов за последний месяц, благодаря чему можно устроить конкурс комментаторов.

29
@ArtikusSol http://twitter.com/ArtikusSol

Во, в нашем полку прибыло. Хорошая статья, я аж на скрине засветился :).

Автор30
Александр Рус (участник БКС) http://myworkpro.ru

Ага)) теперь у меня есть доказательства, что ты посещал мой блог)

31
@Moroshkina http://twitter.com/Moroshkina

Вроде бы все доступно, читала про скрипт топ-комментаторов много, но самой боязно ставить. Пока использую плагин, наверное, стоит рискнуть!

Автор32
Александр Рус (участник БКС) http://myworkpro.ru

У меня тоже плагин вначале стоял, потом узнал про скрипт, установил его себе на блог и нисколько об этом не жалею. Тут нечего бояться:)

33
Александр http://makyshkin.ru

Интересная статья, во всяком случае я думаю, что лучше все это делать с помощью кода. Во-первых, получаешь практические навыки. Во-вторых, использование кода, вместо плагинов реально ускоряет загрузку страниц сайта. Поэтому спасибо Александр. И кстати Александр, у каскадных таблиц стилей расширение CSS, а не PHP. Исправьте вот тут "Прописываем стили."

Автор34
Александр Рус (участник БКС) http://myworkpro.ru

Хорошо, посмотрю и исправлю.

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.