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

топ комментаторов
Всем привет, мои дорогие друзья!

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

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

Спросите вы, а почему же я не делаю такой конкурс? Отвечаю — я его обязательно введу, когда количество статей достигнет более 30шт., поэтому, чтобы не пропустить такое событие, советую подписаться на новости моего блога. =)
топ комментаторов

Итак, приступим, как установить топ комментаторов без плагина на наш блог WordPress. Хочу предупредить, что перед тем, как редактировать свои коды, скопируйте их и сохраните в текстовом файле, чтобы в случае чего, можно было вернуть все назад. Если вы будете устанавливать плагин, то коды редактировать не придется, но…у меня тоже раньше стоял плагин, но не очень красиво отображался на блоге. Во-первых, все комментаторы стояли в один столбик, уходя вниз. Во-вторых, для тех, кто не хочет ставить свои фото, там предоставлены ужасные картинки, какие-то монстры и злые смайлы. Мне это вообще не нравилось, да и лишняя нагрузка на блог от плагина. Поэтому, давайте я вам расскажу, как установить топ комментаторов без плагина.

Идем на наш хост, где лежит наш блог, находим папку со своей темой блога, ищем файл functions.php и вставляем туда вот этот код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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'; // мыла-исключения
    $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><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;
}

Я вставляла его на самый верх, сразу после <?php. Думаю, тут все понятно, отредактируете верхние строчки, как вам будет необходимо. Не забудьте в строку мыла-исключения вписать свой e-mail, чтобы вы не выводились в топе комментаторов.

Далее мы идем уже в консоль нашего блога, заходим в таблицу стилей (style.css) и в самом низу ставим вот такой код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
.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;
}

И, последний шаг, вводим функцию в sidebar.php в необходимом нам месте:

1
&lt; ?php sp_top_commentator(); ?&gt;

Также, эту функцию можно вывести в виджетах, при помощи плагина Exec-PHP. Просто активируете его и все, после этого в виджеты можно будет вставлять любые php-коды. Можно обойтись и без плагина, установив в functions.php вот этот код:

1
2
3
4
5
6
7
8
9
10
11
//Php в виджете
add_filter('widget_text','sp_widget_execute_php',100);
function sp_widget_execute_php($text) {
     if(strpos($text,'&lt; ?') !== false) {
         ob_start();
         eval('?&gt;'.$text);
         $text = ob_get_contents();
         ob_end_clean();
     }
     return $text;
}

…но за его функциональность я не ручаюсь, потому что я не вставляла его к себе, поэтому повторяю, перед редактированием файла, скопируйте его и сохраните в другое место.
Ну, на этом все. =) Вот такой топ комментаторов получился у меня:

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

Топ комментаторов без плагина я сделала где-то за 5 минут, делается все очень просто и быстро. На этом я закругляюсь и заканчиваю свою статью. В комментариях пишите, как вам помогла моя статья, или кто-то делал топ комментаторов другими способами, делитесь, будет интересно почитать. Все, всем пока, до встречи в следующих статьях! =)

Не забудь подписаться, чтобы не пропустить следующую статью! ;)

С уважением, Соболева Диана.

стрелочка

Читайте также:

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

  1. Сергей Стрелков:

    Диана, спасибо за интересный пост. Давно хотел сделать такой красивый топ — комментаторов. Я сам раньше не уделял большого значения, блоку топ комментаторов. И он у меня в одну колонку, но сегодня переделаю, по вашим рекомендациям. К вам на блог я попал с блока топ комментаторов другого блога.

    Классный у вас блог, буду заходить в гости!

    :!:

    • Здравствуйте, Сергей! Рада, что понравилось.) Заходите обязательно, тоже буду в скором времени вводить конкурс.) Потом отпишите результат, когда сделаете у себя топ комментаторов.) :twisted:

  2. Владимир:

    Ух ты круто! Не думал что так все просто!

  3. Натала:

    Уже где-то читала и пробовала, но файл функции очень капризный и блог падает. Поставила плагин, вроде терпимо. Может соберусь с мыслями и еще попробую :o

    • Кстати, у меня тоже была раньше проблема с этим, я код function (а) вставляла через консоль и у меня тоже блог падал, потом таки залезла на хостинг и оттуда аккуратно вставила, заработало, моему счастью не было предела. :roll:

  4. Сергей Стрелков:

    Хорошая штука, этот блок Топ комментаторов без плагина. Но я его два вечера ставил, просто жуть. Шаблон делал в редакторе Артистет, и с подобными проблемами столкнулся, когда вставлял коды контекстной рекламы GooglAdsens без плагина через файл function. Сайт много раз падал, восстанавливал. Кое- как сделал. Зато теперь могу ставить рекламу в любое выгодное место в статье. Доход от рекламы увеличился в два раза. С Топом комментаторов такая же история приключилась. Пришлось порыться в интернете, и все- таки нашел решение. Оказывается, блокноты для редактирования сохраняют файл не в той кодировке, нужно UTF-8 без БОМ. И обязательно скачивать файл и редактировать во внешнем редакторе, например в Notepad, а затем закачивать на хостинг. Диана вы правильно отметили, редактор в консоли блога действительно изменяет файл, и он может не работать. Функцию я так и не смог вставить напрямую в sidebar.php, сделал с помощью плагина Exec-PHP. Топ комментатора я поставил немного другой, с выделением победителей в конце месяца в отдельный топ. И три дня по окончании месяца победители будут показываться. :mrgreen:

    • О, это же здорово, Сергей! Вы молодец! Интересная задумка про выделение победителей.) А так, я тоже делала с помощью плагина и выложила в виджет, очень удобно и ковыряться нигде не надо.

  5. Сергей:

    Как раз себе на сайт хочу вставить эту полезную штуку! Спасибо! ;-)

  6. Александр Викторович:

    Интересный и полезный совет. Топ комментаторов конечно нужен, а у меня его нет. Только страшновато редактировать файл «функционал», тем более что в кодах почти не разбираюсь. Но когда то нужно начинать. Думаю потренироваться с редактором «Нотепад», говорят через него безопасно. А за статью спасибо. И блог, у вас интересный.

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

  7. Ирина Раковец:

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

    • Это да, правильно говорите, Ирина.)) Но я бы еще от половины плагинов избавилась, но они все такие нужные.)) :x

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

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