топ комментаторов без плагинаНа многих сайтах под управлением 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;
}

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

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

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

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

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

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

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