Как сделать топ комментаторов без плагина

topkommentatorbezplaginaПриветствую друзья! Тема сегодняшнего поста, как сделать топ комментаторов без плагина.
Сделать интересный Топ комментаторов можно и без плагина с помощью PHP кода. Плагины значительно замедляют работу блога и многие заменяют их кодом.

У меня такой был, слева изображение моего бывшего Топа блога. И мы сделаем Топ комментаторов с помощью кода.Полезная штука Топ комментаторов.

  • Во первых, повышает уровень поведенческих факторов. Подробнее о поведенческих факторах читайте здесь. Топ комментаторов привлекает внимание посетителей и читателей блога. Интересно же узнать кто комментирует блог, если у них самих блоги. Это задерживает внимание посетителей, они читают комментарии, сами пишут их. И поведенческие факторы влияющие на поисковую выдачу повышаются, и блог получает большую посещаемость.
  • Во вторых, с помощью Топа комментаторов удобно организовывать конкурсы комментаторов. Ранее и у меня на блоге был конкурс случайный комментатор.
    Вообще, топ комментаторов можно сделать  с помощью специального плагина. Но лишние плагины нагружают блог и скорость загрузки страниц падает, и в поисковой выдаче блог будет ниже.

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

Топ комментаторов на WordPress без плагина

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

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

Либо можно зайти на свой хостинг в свой аккаунт через FTP соединение через WinSCP, или подобную программу.  Сделать копии файлов functions.php и sidebar.php, туда будем вводить код. В случае неудачи можно обратно закачать в свой аккаунт не тронутые файлы.

Топ комментаторов с PHP кодом

Код расположенный ниже вставляем в файл functions.php.

function sp_top_commentator_winners(){
global $wpdb;
$length = 0; // Максимальная длинна имени в символах, если стоит 0, то имя не обрезается
$month = true; // true — за текущий месяц, false — за все время
$comment = true; // показывать количество комментариев
$nofollow = true; // ссылки nofollow
$count = 24; // количество комментаторов
$col = 3; // количество колонок
$avatarSize = 40; // размер аватара
$exceptionEmail = ‘strels111@gmail.com’; // мыла-исключения

$showWinners = true; // показывать победителей
$countWinners = 3; // количество победителей
$showDays = 7; // количество дней, которое показываются победители
$separator = ‘<hr style=»display:block;»>’; // разделитель ТОПа и победителей

$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
);

$firstIteration = true; // отвечает за то чтобы было всего две итерации
do {
$output = «<div class=’top-comment’><table width=’100%’><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;

if ($showWinners and date(‘j’) <= $showDays and $firstIteration) {
$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).’) AND
month(comment_date) = month(now() — interval 1 month)
GROUP BY
comment_author_email
ORDER BY
comments_count DESC
LIMIT ‘.$countWinners
);
echo $separator;
$firstIteration = false;
} else {
$showWinners = false;
}
} while($showWinners);
}

Теперь вставляем код в файл 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 #D0D0BB;
margin: 0 0 3px 0;
}

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

Осталось вставить код функции в нужное нам место, у меня это сайд бар справа, вставляем в виджет с текстом. Например, «Узнай, кто самый активный комментатор блога» и далее вставляем код.

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

<noindex><nofollow>
<?php sp_top_commentator_winners(); ?></nofollow></noindex>

Осталось проверить как все функционирует и порадоваться, что все получилось!

Жми «Нравится» и получай только лучшие посты в Facebook ↓

Комментариев: 2
  1. Сергей Стрелков

    Привет, Андрей! Спасибо, тебя тоже поздравляю с праздниками. Насчет плагинов согласен, это тоже код. Но в них много лишнего, ссылки на автора, на PRO- версии и т.п.

  2. Андрей Косолапов

    Сергей, приветствую! С Праздничками тебя, твоих близких и конечно читателей данного блога.
    «Но лишние плагины нагружают блог и скорость загрузки страниц падает, и в поисковой выдаче блог будет ниже.» и кто тебе такую глупость сказал?
    Плагин это тот же самый код. Так что бред все это никакой нагрузки и лишней скорости плагин не забирает Я в этом уверен почти на 100% Код конечно хорошо, но если менять тему, то нужно не забыть и код поменять в новой.
    Правда я и сам топ комментаторов поставил кодом. Ладно с праздниками!

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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Как сделать топ комментаторов без плагина