Сегодня я покажу, как добавить себе на сайт топ комментариев, не используя плагин: да и всевозможный плагиат не лучший вариант – тяжеловато для блога. Честно говоря, решился я написать подобный пост (коих и без моего великое множество) только потому, что у меня недавно спросили: какие я задавал стили css своим аватаркам?
Я, конечно, ответил… и тут же с «пылу-жару» решил изложить и свой небольшой пост этой темы. Но балаболить только об аватарках, это как-то неэтично, и посему привожу пример вставки «комментариев» полностью, с кое-каким своими добавками.
как добавить на сайт топ комментаторов
Итак, ниже основной скрипт код топ-комментаторов, который необходимо добавить в файл functions.php : — открываете файл и в самом его финале, перед «?>» прописываете его.
Код рабочий, с моего сайта. Так что будьте внимательны, когда станете редактировать свой functions.php, ибо если вы всю прописку предложенного мною кода выполните правильно, ТОП сразу же заработает. А если совершите ошибку — проверяйте свои действия. Страхуйтесь, копируйте всё куда-нить…
Напоминаю: электронные почты и т.п. следует заменить на свои…
//НАЧАЛО ТОП
function sp_top_commentator(){
global $wpdb;
$length = 20; // Максимальная длинна имени в символах, если стоит 0, то имя не обрезается
$month = false; // true - за текущий месяц, false - за все время
$comment = true; // показывать количество комментариев true
$nofollow = true; // ссылки nofollow false - закрытые
$count = 9; // количество комментаторов
$col = 3; // количество колонок
$avatarSize = 60; // размер аватара
$exceptionEmail = '@@@@@ya.ru, @@@@yandex.ru, @@@@gmail.com'; // мыла-исключения
$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 = "comment" 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;
}
//ФИНАЛ ТОП
И, как только разберётесь с кодом функций, сразу же открывайте файл стилей 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 5px 5px;
}
.top-comment table {
padding:0 5px 5px 70px;
background:url(images/top5.png) no-repeat left;
margin:10px 0px 10px 0px;
box-shadow:3px 3px 3px #464646;
-webkit-box-shadow: 5px 5px 15px #464646;
}
.top-comment .avatar-top img {
-webkit-box-shadow: #666 0px 4px 3px;
-moz-box-shadow: #666 0px 4px 3px;
box-shadow: #666 3px 3px 3px;
padding: 1px;
background: white;
border-image: initial;
border: 3px solid #D0D0BB;
margin: 0 0 3px 0;
height: 45px;
width: 45px;
}
/* Стили для строчек с именам ТОП*/
.name-author {
margin:-30px -10px 10px 180px;
}
…и если прописывали весь этот код правильно, то ваш сайт имеет теперь собственный ТОП комментаторов!
ещё один коротенький вариант CSS топ комментаторов
…мало ли, может кому пригодится:
.top-comment{height:100%}
.top-comment table{min-height:100%;height:100%;width:100%}
.top-comment table td{padding:0 3px 2px 4px}
.top-comment table{margin:0px -5px}
.top-comment .avatar-top img{float:left;padding:1px;background:white;border-image:initial;margin:0 2px/*САЙД СПРАВ 7))*/ 0;
width:42px;height:42px;-webkit-box-shadow:#666 0px 4px 3px;-moz-box-shadow:#666 0px 4px 3px}
P\s Возможно, код стилей вам нужно будет редактировать под себя — экспериментируйте…
Эх, ёксель-бант, чуть не забыл..!
Вот ключевая кодированная строчка ТОПа, без которой ничего не станет работать…
<?php sp_top_commentator();?>
Этот вензель необходимо прописывать туда, где бы вы хотели видеть вывод формы топ-комментаторов: либо в финале статьи — это обычно файл single.php — реже может быть и post-page.php, либо вы решите прописать эту строку в текстовом виджете (как и у меня) тогда ТОП коммы поместятся у вас в сайдбаре.
Вот, пожалуй, и всё…
А кому интересна статья Как добавить на сайт адаптивные топ комментаторов – проходите и прописывайте предложенные коды в свои документы.
Online консультация по настройкам и созданию сайтов на WordPress
mihalica.ru !