Выводим топ комментаторов с помощью кода + мини конкурс «Кто больше?»

топ комментаторов с помощью кода Добрый день, уважаемые читатели и гости LediSeo ! Несколько месяцев назад, подводя итоги одного из конкурсов я пообещала, что в 2012 году буду определять самого активного комментатора и в конце года определю самого – самого. Но наступили праздники, затем завертел вихрь будней и я совершенно забыла об этом, пока пару дней тому назад один из моих постоянных читателей в письме не спросил: “… Наталья, а где обещанный в конце месяца топ комментаторов и кто на данный момент лидирует?”. Вот тут я поняла какого маху дала, забыв про обещанный топ комментаторов. Поэтому села срочно исправлять положение и выводить топ комментаторов с помощью кода, а как это делала и будет рассказываться в данной статье.

Прежде чем приступить к описанию как вывести топ комментаторов без виджета, а при помощи небольшого кода, автором которого является SlowProg,  объясню для чего это вообще надо. Активное комментирование материалов является одной из основных частей продвижения блога в поисковых системах. Дело всё в том, что поисковые роботы отдают своё предпочтение тем ресурсам, на которых происходят частые обновления. А комментарии можно считать продолжением нашего материала, при чем зачастую это продолжение будет более уникальным, ведь каждый высказывает свою точку зрения относительно затрагиваемой темы поста, на что и обращают внимание поисковые роботы. В результате происходит естественный подъем в выдаче, а это значит что блог становит более посещаем.

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

Думаю, суть Вы уловили. Поэтому пора переходить непосредственно к выводу топ комментаторов с помощью кода. Конечно, для wordpress и в данном случае предусмотрен неплохой плагин TOP Commentators Widget, но зачем снижать скорость загрузки блога лишним плагина. К тому же у данного плагина есть один, на мой взгляд, небольшой недостаток – выводимый топ комментаторов невозможно сделать под общий дизайн используемой темы. Но для меня нет ничего невозможного и решение этого вопроса было найдено быстро, внедрив специальные коды в используемый шаблон.

Итак, для того чтобы вывести красивый топ комментаторов, как у меня, с помощью простого кода Вам необходимо внести изменения в файл functions.php используемой темы. Для этого заходим в админку блога и в консоли выбираем “Внешний вид” — ”Редактор” и в правой колонке кликаем по пункту Функции темы

топ комментаторов с помощью кода

И в открывшемся на редактировании файле functions.php в самом низу, перед  закрывающимся тегом ?> прописываем следующий код:

 
function sp_top_commentator(){
 global $wpdb;
 $length = 7; // Максимальная длинна имени в символах, если стоит 0, то имя не обрезается
 $month = true; // true - за текущий месяц, false - за все время
 $comment = true; // показывать количество комментариев
 $nofollow = true; // ссылки nofollow
 $count = 6; // количество комментаторов
 $col = 3; // количество колонок
 $avatarSize = 40; // размер аватара
 $exceptionEmail = 'mail1@dom.ru, mail2@mod.ru, janatalia@bk.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 = "
«; $i = 0; foreach($results as $result){ if ($i>=$col) { $output .= «»; $i = 0; } $i++; $output .= «»; } if ($i<=$col) $output .= «»; $output .= »

«.get_avatar($result->comment_author_email,$avatarSize).»
«; 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 .= «».$result->comment_author.»»; else $output .= «».$result->comment_author.»»; else $output .= $result->comment_author; if ($comment) $output .= «(«.$result->comments_count.»)»; $output .= »

";
 echo $output;
}

В котором имеется несколько гибких настроек, которые можно настроить на свое усмотрение, а именно:

$length  – позволяет настроить максимальное количество символов в имени комментатора. Оптимальное значение в этом поле может быть от 10 до 15

$month – с помощью данного оператора определяется за какое время будет выводиться топ комментаторов. Так при значении “true” будет подсчитываться количество сообщений за месяц, а вот с помощью “false” – за год.

$comment – с помощью данного значения мы указываем будет ли выводиться рядом с именем комментатора количество оставленных сообщений. “true” – да, “false” – нет.

$nofollow — указываем, будут ли ссылки в топ комментатор закрываться от индексации. “true” – да, “false” – нет

$count – определяем какое количество комментаторов будет участвовать в топе.

$col — указываем сколько колонок будет выводить в топ комментаторов

$avatarSize — размер выводимого аватара

$exceptionEmail – здесь следует прописать e-mail адреса, которые будут исключены из топа. Например, админа блога, то есть Ваш.

Прописав необходимые настройки, сохраняем произведенные изменения.

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

 
.top-comment {
height:100%;
background: #ffffff;
margin-top:-10px;
 
}
.top-comment table {
min-height: 100%;
height:100%;
margin: 20px 0px 0px 5px;
}
.top-comment table td {
float: left;
padding: 0;
width: 70px;
}
.top-comment .avatar-top img {
border: 3px solid #dfebe1;
}
.top-comment .avatar-comment {
font-size: 12px;
margin: 0px -10px 10px 0px;
}

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

Теперь нам только осталось вывести сам топ комментаторов на блог с помощью кода :

 
<!--?php sp_top_commentator(); ?-->

который прописываем в файл single.php в необходимом для Вас месте в случае, когда у Вас сайдбар выводится вручную. Об этом я подробно писала в материале “Как делала верстку боковой панели и ставила табы в сайдбар”, у меня это выглядит следующим образом

код топ комментаторов в файле single.php

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

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

Ну вот по идеи и все. Все остальное зависит от Вашей фантазии.

На этом я сегодня с Вами буду прощаться, но в следующей статье Вас ждет не менее интересная информация из которой Вы узнаете, как можно задержать посетителя оставившего свой первый комментарий у Вас на блоге. Поэтому не забудьте подписаться на обновления блога Отчаянной, чтобы не пропустить что – то важное.

И в заключение обещанный мини конкурс “Кто больше?”, который не потребует от Вас особых усилий или знаний.

Все что от Вас требуется, это внимательно читать блог Отчаянной в мае и писать развернутые комментарии к любым материалам. И тот кто в течение месяца напишет 10 или более сообщений и тем самым займёт верхнюю позицию в топ комментаторов получит от меня небольшой денежный приз, в размере 100 рублей.  Поэтому начинаем тренироваться и писать комментарии уже сегодня.

Думаю, не сложно. Так что читайте блог, тем более в мае будет огромное количество сюрпризов.

Пока – пока.

С уважением, Наталья Яшина

Вам понравилась статья? Расскажите о ней друзьям!