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

топ комментаторов без плагинаНа многих сайтах под управлением WordPress часто устанавливают колонку Топ комментаторов. Такую колонку устанавливают в удобном месте, обычно, в сайдбаре, с изображением аватаров лучших комментаторов. На моем сайте вы тоже можете увидеть колонку с аватарами Топ комментаторов.

Наличие такой записи с аватарами наиболее часто оставляющих комментарии посетителей, повышает комментирование на блоге, и привлекает новых посетителей.

Появление аватара посетителя в списке лучших комментаторов, стимулирует посетителей на попадание в этот список, увеличивается количество комментариев, и улучшает поведенческие факторы на сайте.

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

Для установки Топ комментаторов часто используют плагин Top Commentators Widget. Я некоторое время использовал его, а потом отказался от использования этого плагина. Он у меня, иногда, не добавлял некоторым комментаторам, сделанные ими комментарии, и поэтому, я перестал пользоваться этим плагином.

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

скачать яндекс браузер

Автором этого кода является известный блоггер СЕО-лётик.

Лучших комментаторов можно установить без использования плагина, далее я напишу, как это сделать. Для этого придется вставлять специальные коды в файлы вашей темы.

В первую очередь нужно проверить, что в «Админ-панели WordPress» вашего сайта включено отображение изображений — аватаров. Для этого нужно войти в «Админ-панель WordPress» => «Параметры» => «Обсуждение». Затем в разделе «Аватары» необходимо отметить пункт «Показывать аватары».

Внимание! Перед изменением, вносимым в файлы вашей темы оформления «functions.php», «style.ccs» и «sidebar.php», необходимо обязательно сделать копии данных файлов. Если в процессе изменения кода файлов вашей темы, возникнут какие-либо неполадки, у вас будет возможность все восстановить из резервной копии данного файла. Предупреждаю, что на на некоторых темах этот код может не работать.

Вставка кода Топ комментаторов в файл Функции темы (functions.php)

Для установки кода в тему вашего сайта нужно войти в «Админ-панель WordPress» => «Внешний вид» => «Редактор» => «Шаблоны» => «Функции темы (functions.php)».

Первый код нужно будет вставить в файл «Функции темы (functions.php)». Этот код отвечает за настройку и функционирование Топа комментаторов.

Перед вставкой этого кода, его можно настроить по своему усмотрению. В строках, которые можно редактировать имеются пояснения на русском языке.

function sp_top_commentator(){
    global $wpdb;
    $length = 0;        // Максимальная длинна имени в символах, если стоит 0, то имя не обрезается
    $month = true;     // true - за текущий месяц, false - за все время
    $comment = true;    // показывать количество комментариев
    $nofollow = true;   // ссылки nofollow
    $count = 6;        // количество комментаторов
    $col = 3;       // количество колонок
    $avatarSize = 70;   // размер аватара
    $exceptionEmail = 'mail@gmail.com'; // мыла-исключения
    $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 $lengthcomment_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;
}

Рекомендую редактировать этот код с помощью текстового редактора Notepad++, или в самом файле «Функции темы (functions.php)», уже после вставки туда кода. При использовании для этих целей блокнота, могут возникнуть проблемы, из-за различий в кодировке.

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

В этом коде можно поменять такие настройки:

  1. Можно поменять порядок отображения комментаторов: за все время (сейчас настройки в коде настроены на комментарии за все время — «false») или за текущий месяц (в этом случае нужно заменить выражение «false» на «true»). В этом случае будут отображаться комментарии за текущий месяц.
  2. Сейчас включено отображение количества комментариев, оставленных каждым комментатором. Если вы хотите, чтобы количество комментариев, оставленных конкретным пользователем не отображалось под его аватаром, измените значение «true» на «false».
  3. По умолчанию ссылки закрыты от индексации с помощью атрибута «nofollow». Если вы хотите открыть для индексирования ссылки, то вам нужно будет поменять значение с «true» на «false».
  4. В следующей строке вы можете поменять значения по количеству отображаемых комментаторов. Просто поменяйте эту цифру на ту, которая вам нужна.
  5. В строке, расположенной ниже, вы можете изменить значение по количеству отображаемых колонок. Измените соответствующую цифру на другую, нужную вам цифру.
  6. Далее в следующей строке можете изменить размер аватара комментатора в пикселях.
  7. Вместо почтового ящика ‘mail@gmail.com’ вам нужно будет вставить адрес своего почтового ящика, который записан у вас в «Админ-панель WordPress» => «Параметры» => «Адрес e-mail». Это сделано для того, чтобы ваши ответы не засчитывались в топ комментариях, а ваш аватар не присутствовал среди самых активных комментаторов вашего сайта.

В файл «Функции темы (functions.php)» этот, или уже отредактированный по вашему желанию код, необходимо будет вставить в самом начале файла, после тега <?php, или в конце файла перед закрывающим тегом ?>.

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

После вставки кода следует нажать на кнопку «Обновить файл». Обращаю ваше внимание, что в некоторых темах, этот код потребуется вставить в самом начале файла «Функции темы (functions.php)», сразу после тега <?php. В этом случае перед тегом ?> нужно будет вставить другой код. Об установке второго кода вы прочитаете в конце статьи.

Обязательно сделайте копию и сохраните файл «Функции темы (functions.php)». Когда я экспериментировал с этим кодом на разных темах, то после неверной вставки кодов в файл «Функции темы (functions.php)», у меня не один раз слетала тема, появлялся белый экран, не было возможности войти в «Админ-панель WordPress». Особенно этим отличались темы, установленные по умолчанию в WordPress.

Мне приходилось восстанавливать этот файл с помощью файлового менеджера хостинга. Это также можно сделать с помощью таких программ, как FileZilla или Total Commander. Еще один возможный вариант — восстановление из резервной копии вашего сайта вашим хостинг-провайдером.

Теперь можно перейти к следующему шагу установки кодов для лучших комментаторов.

 Вставка кода Топ комментаторов в файл Таблица стилей (style.css)

Для улучшения внешнего вида колонки Лучших комментаторов, можно вставить еще один код в файл «Таблица стилей (style.css)». Для этого нужно будет перейти в «Админ-панель WordPress» => «Внешний вид» => «Редактор» => «Стили» => «Таблица стилей (style.css)».

.top-comment{height:100%;}
.top-comment table{min-height:100%;height:100%;border:none;}
.top-comment table td{padding:0 5px 15px 5px;border:none}
.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 #aaa;margin:0 0 3px 0;}
.top-comment .avatar-comment{font-size:12px;display:block;line-height:1em;margin-top:1px;width:50px}

В этом файле вы можете менять цифровые значения параметров, настраивая этот код под свои требования, опытным путем.

Затем переходите в «Админ-панель WordPress» => «Внешний вид» => «Редактор» => «Шаблоны» => «Боковая колонка (sidebar.php)», для установки кода лучшие комментаторы. Можно установить Топ комментаторов в другое место, например, в файл «Подвал (footer.php)».

Вставка кода Топ комментаторов в файл Боковая колонка (sidebar.php)

В файл «Боковая колонка (sidebar.php)» необходимо будет вставить следующий код, в то место, где вам будет удобнее расположить колонку Топ комментаторы.

<?php sp_top_commentator(); ?>

Этот код также можно вставить через «Админ-панель WordPress» => «Внешний вид» => «Виджеты» => «Текст». Далее вставленный код в «Текст», перетаскиваете в «Боковую колонку (сайдбар)». После этого, Топ комментаторов должен появиться на вашем сайте.

Идеальный выбор начинающих и небольших сайтов

Название этой колонки — «Топ комментаторов» можно поменять на другое, например, «Лучшие комментаторы» или «Активные комментаторы». Если лучшие комментаторы не отображаются, то тогда вам придется вставить еще один код в файл «Функции темы (functions.php)».

Вставка дополнительного кода в файл Функции темы (functions.php)

Перед вставкой дополнительного кода, вставленный первоначально код комментаторы без плагина, который расположен перед тегом ?>, нужно будет удалить из файла «Функции темы (functions.php)». Его необходимо переставить в другое место файла «Функции темы(functions.php)». Этот код нужно будет вставить в самом верху файла, сразу после тега <?php. Делаете два пробела и вставляете код комментаторы без плагина. После этого, на бывшее место кода комментаторы без плагинов, необходимо вставить вот этот код, перед тегом ?>.

add_filter('widget_text','sp_widget_execute_php',100);
function sp_widget_execute_php($text) {
if(strpos($text,''.$text);
$text = ob_get_contents();
ob_end_clean();
}
return $text;
}

Далее следует нажать на кнопку «Обновить файл».

Затем можно перейти на сайт и посмотреть, что у вас получилось. Колонка Топ комментаторов теперь расположена в сайдбаре вашего сайта.

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

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

С уважением, Василий Прохоров

скачать амиго бесплатно

Понравилась статья — нажмите на кнопки:

Подписаться на обновления блога

52 комментария

  1. Полезный код, потому как ТОП комментаторов, определенно приводит к увеличению активности читателей. Но у меня пока стоит плагин. Как только создала блог, помню устанавливала, у меня не получилось, теперь даже пробовать лень! Но как сайт будет более загруженным, придется думать о замене плагинов, кодами.

    • Да, Бух, комментирование сайта повышается. Не все плагины так уж сильно нагружают блог, поэтому коды можно ставить постепенно, не спеша.

  2. А эта палка с вопросительным знаком должна именно в конце стоять? Если да, то у меня ни в одном нет.

    • Код можно вставить в самом начале файла, после

      < ?php

      Но, этот код работает не на всех темах.

  3. Спасибо Василий, давно ищу как установить на блог именно такой ТОП коментаторов. Но нормальных объяснений на блогах я пока что не встречала.
    У Вас же всё подробно, можно и рискнуть, но сначала на тестовом блоге.
    И ещё хочу спросить как установить под комментами окошко «Подписаться без комментирования»

    • Лучше все проверить на тестовом сайте. Код не всегда срабатывает, не на всех темах. Поэтому лучше не рисковать — сразу ставить на рабочий сайт, если есть возможность посмотреть на тестовом сайте.
      Подписка в настройках плагина Subscribe to Comments (есть статья на сайте).

  4. Ура заработало, с 10 попытки, и 2 часов ковыряний кода) Вы 4 сайт у кого я ищу подобную инфу, и только с вашей подачей информации все заработало) Спасибки.

  5. Василий, скрипт работает. Это счастье. Без кода, который заставляет работать его в виджете, он был бы не актуален. Спасибо.

  6. Здравствуйте! Давно хочу установить себе ТОП комментаторов без плагина, не находила хорошей статьи с инструкциями. У Вас вроде бы понятно все написано, решилась. Скопировала коды в блокнот, подкорректировала под себя, как учили и вставила в funcions.php перед тегом ?>. После обновления сайт слетел полностью!

    Пошла на Sprinthost, нашла там functions.php, просто так открыть файл не удалось, пишет, что файла не существует. Попробовала через edit, открылся, удалила вставленные коды. После этого смогла открыть сайт. И functions.php на сайте, вроде как нормально открывается, а вот на хостинге через FTP по прежнему не открывается. Сейчас написала в техподдержку, жду.

    Интересно, в чем причина, моя тема не хочет дружить с чужеродными кодами или в кодах не все в порядке? Перед тем, как вставлять коды к себе, убрала оттуда все пояснения на кириллице, кроме верхней строчки ТОП комментаторов. Может быть этого не нужно было делать?

    • Галина, в статье я писал, что могут быть такие ситуации.
      Вам нужно было сохранить оригинальный файл functions.php, чтобы потом была возможность его восстановить.
      У меня бывали точно такие ситуации на тестовом сайте, что слетала тема, и мне приходилось ее устанавливать заново. Может быть, одна из причин — это, то, что код вы переставляли через блокнот. В этом случае могли быть проблемы с кодировкой. В блокноте — ANSI, а там — UTF. Лучше это делать через Notepad++, или непосредственно скопировать код с этой статьи в файл functions.php. Его можно отредактировать потом, когда все заработало, непосредственно в файле functions.php.
      Сам код рабочий, но на некоторых темах не работает — топ комментаторов не отображается, а иногда бывает такой «вылет» сайта. Кириллица на работоспособность никак не влияет, на моем сайте она присутствует в этом коде.

  7. Я решила не рисковать, а тоже попробовать на тестовом. Не помню просто, делала его уже или нет… А моя тема Alias, да не тратьте время. Я разберусь с поддоменом и попробую.

    • Назвавние темы, я узнал чуть раньше. Она мне понравилась, приятная тема. Все работает.

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

    • Галина, добавьте 5 строчку в первый код. Сравнил с кодом со своего сайта, и увидел, что одной строчки не хватает. Сейчас исправлю код. Добавите одну строчку в свой код.

  9. Ура! Все получилось! Рада безмерно! Спасибо Вам огромное! Не только понятным языком написанная статья (а я много просмотрела), но еще и своевременно оказанная, качественная помощь!

    • Всегда стараюсь оказывать помощь своим читателям, если конечно, имею такую возможность.

  10. Василий, а что означает «вылет темы»? Понимаю, что явно что-то нехорошее, но все же — как это выглядит?

    • Это когда вместо админ-панели пустой белый экран монитора, и нет возможности в нее войти. Сайт выглядит также, его после этого нет в Интернете. После этого необходимо заменить измененный файл на оригинальный, или в более тяжелом случае, заново установить тему, через файловый менеджер хостинга.
      В этом файле Функции темы необходимо проводить изменения очень осторожно, без ошибок. Очень важно, при копировании кода в этот файл, не использовать блокнот. Из-за различий в кодировке, у меня не раз слетала из-за этого тема на тестовом сайте, пока я не понял, в чем дело.

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

  11. А как без блокнота? Напрямую отсюда?
    Вот кстати о белых экранах любопытная тема. Любит вордпресс белый флаг поднимать мне, и коды вставлять не нужно.

    • Напрямую, или через Notepad++. Так вставлять нужно, именно, код в файл Функции темы, потому что неправильные действия в этом файле могут привести к краху темы.

  12. Я в шоке. Как и сказали сайт пропал. Как сделать откат или восстановить его?

    • Почему-то я на ваш сайт перешел без проблем.
      Для восстановления замените измененный файл на тот файл, который был до внесения изменений.

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

    • Это нужная вещь как для автора сайта, так и для комментаторов. Сейчас многие комментаторы начинают понимать важность нахождения в ТОПе. Тут и переходы на сайт и ссылка, пусть даже и закрытая.

  14. Он теперь вообще сдох окончательно. Вообще зайти не могу. Как этот файл на хостинге называется?

  15. Я пользуюсь ++, а простым блокнотом нет. Я часто коды вставляю разные, только не в функции, хотя и туда когда-то что-то вставляла. Да и первый же встал нормально.
    Просто может где пробел какой лишний или еще что? я вот нашла скобку ажурную лишнюю. у их же как у дивов, видимо, есть особенность появляться и исчезать из какого-то другого измерения)

    • Дивы — это опасная вещь. За ними нужно внимательно следить, чтобы ничего не исчезло.

  16. Василий, у меня опять вопрос из практики.
    У меня тоже установлен в сайдбаре Топ комментаторов (без плагина).

    Я анализировала скорость своего блога в speed/pagespeed. Попала в начале месяца, когда комментариев еще не было (Топ был пустой). Только за счет того, что не было в сайдбаре граватаров и ссылок с них, скорость загрузки увеличилась на 6 единиц (по единице на граватар).

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

    • Думаю, что ничего изменить не получится, потому что ставить топ комментаторов в другое место кроме сайдбара нет смысла. Придется с этим смириться, так как ссылки и граватары, в любом случае, будут влиять на загрузку страницы. Предполагаю, что это влияние не такое уж большое.

  17. Не поняла много чего нужно разбираться, этот код вставить полностью тот, что ставится в функции темы, старое все убирать, а новое ставить или нужно по строкам вставлять? У меня многих слов нет в функциях темы, например 3 строка :global $wpdb; Можно поподробнее об этом.

    • Этот код вставляется в уже существующий код «функции темы». Просто его нужно скопировать отсюда и вставить в код, на номера строк обращать внимание не нужно. Вставлять код следует в указанные места, перед этим необходимо сохранить код «функции темы» (не в блокноте). Если что-то не так сделаете, то тогда сможете сделать восстановление сайта. Неправильная вставка кода в файле «функции темы» может привести к «белому экрану смерти».

  18. А я только только начала пользоваться плагином Top Commentators Widget. Стараюсь держать количество плагинов не больше 20 штук, но понимаю, что — то надо заменять на код.

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

    • А у меня 14 активных плагинов. Только самые необходимые.
      Лара, вставлять код учиться нужно. Я сам долго опасался это делать, но необходимость все равно заставила.

  19. Буду стараться побороть этот страх раз и навсегда. Уже первые шаги есть!

    Сначала, когда первый раз вообще меняла что то в коде, то ручки тряслись. А если подумать, что тут страшного? Как говорится: Главное для блоггера — это всегда бэкапиться (делать резервные копии)!

    • Можно создать поддомен, установить там такую же тему. А потом там можно будет пробовать ставить код, перед установкой на основной блог.

  20. Что-то не получилось у меня вот так «сходу» установить топ комментариев на свой блог без плагина. Потом еще поразбираюсь, думаю пока всё-таки плагин поставить, временно. В любом случае, спасибо за статейку!

  21. Здравствуйте!
    Билась с этим топом неоднократно.
    У меня тема с тегом ?>, но всё равно не встаёт. Нашла у вас (в отличии от всех), что надо тогда ставить две части кода. Но и это не помогло — белый экран и приходится всё возвращать на круги своя….

    • Наталья, на некоторых темах этот код не срабатывает. Я сам с этим сталкивался. Белый экран, в некоторых случаях, может быть от использования блокнота при копировании кода.

      • Жаль, что так. Я не через блокнот, а через Notepad делала. А хотелось уменьшить количество плагинов.

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

          • Согласна, что наверно плохо искала. Но хочется чего-то не очень простого, а именно связанного с тематикой самого блога.

          • Наталья, не обязательно искать что-то связанное с тематикой вашего сайта. Нужные изображения можно будет добавить в шаблон потом.
            Главное, чтобы сайт имел привлекательный вид, без излишеств, удобный для чтения, с понятной навигацией. У вас с этим сейчас серьезные проблемы.

          • Совсем вы меня, Василий, в тупик поставили.
            Были какие-то моменты в коде прописаны, да и встанут ли изображения нормально…
            И где вообще искать «нужные» темы

          • Наберите в поисковике «русские темы WordPress», вам будет предложено много вариантов ответов. Посмотрите, может что-то подберете себе.
            Скачайте тему, не активируя, просмотрите как она будет выглядеть с содержимым вашего сайта.
            Если что-то подошло, то не забудьте проверить тему на наличие посторонних ссылок.
            По вставке изображений, также набираете свой вопрос в поиске и ищите на него ответ.

          • Огромное спасибо, Василий! Сейчас постараюсь «провернуть» ваш совет.

  22. Отличная идея! Поставил себе! Спасибо за статью, но вот проблемка в том, что комментаторы не отображаются.

    • Все коды пробовали устанавливать? Возможно, у этого кода нет совместимости с темой вашего сайта.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *