X
    Categories: Новости

Выводим ТОП комментаторов без плагина — быстро и красиво!

Приветствую, друзья!

Сегодня я продолжаю бороться с теми плагинами, которые можно заменить простым кодом или реализовать при помощи скриптов. На очереди плагин, который ранее выводил у меня блок “Лучший комментатор”.

Теперь я заменю его кодом и расскажу подробно, как  реализовать виджет “Лучшие комментаторы” для любого блога на WordPress при помощи кода  и  как настроить данный блок персонально для каждого.

Как я писал ранее, карту сайта sitemap.xml теперь у меня создает плагин all in one Seo Pack, а ранее эти функции выполнял плагин Google sitemap xml, который я удалил.

Теперь настала очередь удалить плагин TOP Commentator Widget, который несколько месяцев выводил у меня блок “Лучший комментатор” на блоге.

Недостатки плагина TOP Commentator Widget

  1. Создание лишней нагрузки на хостинг, которую создает практически любой плагин
  2. Плагин считал ранее у меня комментаторов по имени, а код, который я предлагаю считает по e-mail. Поясню, подробней…

У меня в этом месяце 3 комментатора с именем Денис (Денис, Denis и Denis) и плагин отображал их, как 2 человека – Denis и Денис. Мне приходилось ставить точку в конце имени, чтобы плагин считал отдельно этого читателя (Denis.).

3. Невозможность добавления в виджет  дополнительного html-кода, в котором я размещаю информацию про ежемесячный конкурс  “Лучший комментатор” и денежные призы.

4. Невозможно дополнительно внести коррективы во внешний вид аватарок, их формы (теперь круглые), цвет обводки (теперь коричневый в стиле темы шаблона), стили css и так далее.

Выводим ТОП комментаторов без плагина

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

Для редактирования файлов на хостинге используйте удобный ftp-клиент, как вариант – FileZilla (меня полностью устраивает). Это нужно для того, чтобы можно было вернуть всё назад, восстановить первоначальный вид, если что-то пойдет не так.

ВНИМАНИЕ!

Если у вас ранее на блоге виджет “Лучший комментатор” был реализован кодом или плагином, удалите его, прежде, чем начнете выполнять действия, описанные в посте.

  1. Редактируем файл function.php вашей темы

Заходите в корневую папку блога, затем wp-contenl => ваша тема, установленная на блоге=>> function.php

Открываете данный файл и начинаем редактировать. Скролим в самый низ и находим закрывающийся тег почти в конце файла :

?>;

Это очень важно, обратите внимание!

Кстати, как правильно и красиво выводить коды в статьях на блоге, я писал тут, рекомендую почитать:

Вывести html код в статью вордпресс без плагина

Кстати, это можно сделать без плагина, учтите!

Именно перед тэгом вы вставляете две части кода.

Сначала этот фрагмент (основной) который отвечает за вывод ТОП-комментаторов:

function sp_top_commentator(){ 
global $wpdb; 
$length = 10; // количество символов 
$month = false; // периодичность обновления 
$comment = true; // показатель комментариев 
$nofollow = true; // индексация комментариев 
$count = 6; // количество комментаторов 
$col = 3; // число столбцов
 $avatarSize = 65; // размер аватара 
$exceptionEmail = 'mail@gmail.com, mail@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 width='100%'><tr align='center' valign='top'>"; 
$i = 0; 
foreach($results as $result){ 
if ($i>=$col) { 
$output .= "</tr><tr align='center' valign='top'>"; 
$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; 
}

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

 $exceptionEmail = 'ammin@blog.ru, admin@blogg-life.ru';

Свое значение e-mail (вместо ammin@blog.ru, admin@blogg-life.ru), это необходимо сделать для тех пользователей, которых не нужно показывать в виджете “Лучший комментатор”, например, автор блога или другие администраторы. После того, как вы выберите все параметры в коде, жмите кнопку “Сохранить изменения”

2. Далее открывайте файл style.css в вашей теме

После этого нужно вставить код, представленный ниже:

/*топ комментаторов*/
.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 #FFD700;
margin: 0 0 3px 0;
}

.top-comment .avatar-comment {
font-size: 13px;
}

После этого можно слегка переделать стили под вашу тему.

Я, например сделал вывод аватарок круглым, мне так нравится и обводку вокруг аватарок я сделал коричневым цветом.

Вот эта строка:

border: 2px solid #993300;

Вот строка, отвечающая за круглый вывод аватарок:

border-radius: 50%;
 -moz-border-radius: 50%;
 -webkit-border-radius: 50%;

Вот какой код у меня получился, хотите, вставляйте такой же

/*топ комментаторов*/
.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: 2px solid #993300;
border-radius: 50%; -moz-border-radius: 50%; -webkit-border-radius: 50%;

}

.top-comment .avatar-comment {
font-size: 12px;
}

3. Завершающий этап, вставляем код для вывода виджета

Заходите в административную панель, затем пункт “Внешний вид” =>>”Виджеты” и добавляем виджет “Текст”, после этого редактируем его. Даем имя, например “Топ комментаторов” и вставляем в тело самого виджета следующий код:

<?php sp_top_commentator(); ?>

 

Жмем кнопку “Сохранить” и смотрим на результат, нажав “Посмотреть”. Если всё в порядке, радуемся и пишем об этом своим читателям.

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

Теперь вы научились выводить топ комментаторов без плагина, используя код, представленный в посте. Как вам результат, понравился? У меня в сайдбаре можете посмотреть, что получилось:

Мне нравится, а если у вас есть вопросы, задавайте их в комментариях, будем решать возникшие проблемы.

До встречи!

Интересные статьи по данной теме:

Плагин “заплати лайком”, установка, настройка, использование

Как установить кнопки социальных сетей без плагина

Мне нравится комментировать!

Древовидные комментарии при помощи плагина WordPress Thread Comment

С уважением, Вилков Николай

Хотите в числе первых узнавать о новых статьях и курсах?

Подпишитесь на обновления моего блога и мой канал на YouTube
Если статья вам понравилась, поделитесь с друзьями в социальных сетях. Спасибо!

Николай Вилков :