RSS-лента

Лучшие CMS интернета бесплатно для создания сайта

Апр
16

Делаем ТОП комментаторов для сайта на php

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

Самый распространенный способ привлечения комментаторов на блог – это сделать его dofollow. То есть оставить ссылку на автора комментария открытой к индексированию. Но, есть и более интересный способ привлечь комментаторов на блог – установить в сайдбаре виджет топ комментаторов.

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

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

Реализация ТОП комментаторов

  Многие не заморачиваются и используют для создания ТОП комментаторов wordpress плагины: Top Commentators Widget, Simple Top Commenters, и другие. Но, наверное всем уже известно, что плагины нагружают блог, что в итоге приводит к потери потенциальных клиентов. И помимо этого, при ранжировании сайтов в выдаче поисковики используют параметр: времени загрузки страницы.

Создаем топ комментаторов

  Создать виджет ТОП комментаторов для WordPress без плагина, можно при помощи добавления в файл functions.php специального кода. Для этого переходим: админ панель/внешний вид/редактор далее в правом столбце выбираем файл  functions.php и в самый конец файла перед знаком ?>, вставляем нижеприведенный php — код:

function sp_top_commentator(){
global $wpdb;
$length = 0;        // Максимальная длинна имени в символах, если стоит 0, то имя не обрезается
$month = false;     // true - за текущий месяц, false - за все время
$comment = true;    // показывать количество комментариев
$nofollow = true;   // ссылки nofollow
$count = 12;        // количество комментаторов
$col = 3;       // количество колонок
$avatarSize = 40;   // размер аватара
$exceptionEmail = 'mail1@dom.ru, mail2@mod.ru'; // мыла-исключения
$lengthMin = 10;    // минимальное количество символов в учитываемом комментарии
$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.' where CHAR_LENGTH(comment_content) > '. $lengthMin .' 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,
comment_ID ASC
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;
}

Добавленная функция достаточно хорошо прокомментирована и при необходимости вы с легкостью отредактируете ее под свои нужды. Теперь нужно вызвать функцию ТОП комментаторов в любом месте на блоге (например в sidebar.php ) следующим кодом:

<?php sp_top_commentator(); ?>

Также эту функцию можно вызвать, через добавление текстового виджета поддерживающего php.

Далее, добавляем стили оформления к блоку топ комментаторов, вставляя ниже приведенный код в файл style.css:

.top-comment {
height:100%;
}

.top-comment table {
min-height: 100%;
height:100%;
}

.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;
}

На этом сегодня все. Спасибо за внимание.

Получай первым обновления блога!

Введите Ваш e-mail:

Оставить комментарий


вверх