Выводим топ комментаторов с помощью кода + мини конкурс «Кто больше?»
Добрый день, уважаемые читатели и гости LediSeo ! Несколько месяцев назад, подводя итоги одного из конкурсов я пообещала, что в 2012 году буду определять самого активного комментатора и в конце года определю самого – самого. Но наступили праздники, затем завертел вихрь будней и я совершенно забыла об этом, пока пару дней тому назад один из моих постоянных читателей в письме не спросил: “… Наталья, а где обещанный в конце месяца топ комментаторов и кто на данный момент лидирует?”. Вот тут я поняла какого маху дала, забыв про обещанный топ комментаторов. Поэтому села срочно исправлять положение и выводить топ комментаторов с помощью кода, а как это делала и будет рассказываться в данной статье.
Прежде чем приступить к описанию как вывести топ комментаторов без виджета, а при помощи небольшого кода, автором которого является SlowProg, объясню для чего это вообще надо. Активное комментирование материалов является одной из основных частей продвижения блога в поисковых системах. Дело всё в том, что поисковые роботы отдают своё предпочтение тем ресурсам, на которых происходят частые обновления. А комментарии можно считать продолжением нашего материала, при чем зачастую это продолжение будет более уникальным, ведь каждый высказывает свою точку зрения относительно затрагиваемой темы поста, на что и обращают внимание поисковые роботы. В результате происходит естественный подъем в выдаче, а это значит что блог становит более посещаем.
Это плюс для Вас, как для автора, но при этом и Ваши активные читатели получают уникальную возможность увеличить посещения своего ресурса, за счет того что читатели могут просто переходить с моего блога на их ресурсы, так как в топ комментаторов выводиться не только аватарка комментатора, но и ссылка, ведущая на их сайт.
Думаю, суть Вы уловили. Поэтому пора переходить непосредственно к выводу топ комментаторов с помощью кода. Конечно, для wordpress и в данном случае предусмотрен неплохой плагин TOP Commentators Widget, но зачем снижать скорость загрузки блога лишним плагина. К тому же у данного плагина есть один, на мой взгляд, небольшой недостаток – выводимый топ комментаторов невозможно сделать под общий дизайн используемой темы. Но для меня нет ничего невозможного и решение этого вопроса было найдено быстро, внедрив специальные коды в используемый шаблон.
Итак, для того чтобы вывести красивый топ комментаторов, как у меня, с помощью простого кода Вам необходимо внести изменения в файл functions.php используемой темы. Для этого заходим в админку блога и в консоли выбираем “Внешний вид” — ”Редактор” и в правой колонке кликаем по пункту Функции темы
И в открывшемся на редактировании файле functions.php в самом низу, перед закрывающимся тегом ?> прописываем следующий код:
function sp_top_commentator(){ global $wpdb; $length = 7; // Максимальная длинна имени в символах, если стоит 0, то имя не обрезается $month = true; // true - за текущий месяц, false - за все время $comment = true; // показывать количество комментариев $nofollow = true; // ссылки nofollow $count = 6; // количество комментаторов $col = 3; // количество колонок $avatarSize = 40; // размер аватара $exceptionEmail = 'mail1@dom.ru, mail2@mod.ru, janatalia@bk.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 = " |
«.get_avatar($result->comment_author_email,$avatarSize).» «; 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 .= «».$result->comment_author.»»; else $output .= «».$result->comment_author.»»; else $output .= $result->comment_author; if ($comment) $output .= «(«.$result->comments_count.»)»; $output .= » |
";
echo $output;
} |
В котором имеется несколько гибких настроек, которые можно настроить на свое усмотрение, а именно:
$length – позволяет настроить максимальное количество символов в имени комментатора. Оптимальное значение в этом поле может быть от 10 до 15
$month – с помощью данного оператора определяется за какое время будет выводиться топ комментаторов. Так при значении “true” будет подсчитываться количество сообщений за месяц, а вот с помощью “false” – за год.
$comment – с помощью данного значения мы указываем будет ли выводиться рядом с именем комментатора количество оставленных сообщений. “true” – да, “false” – нет.
$nofollow — указываем, будут ли ссылки в топ комментатор закрываться от индексации. “true” – да, “false” – нет
$count – определяем какое количество комментаторов будет участвовать в топе.
$col — указываем сколько колонок будет выводить в топ комментаторов
$avatarSize — размер выводимого аватара
$exceptionEmail – здесь следует прописать e-mail адреса, которые будут исключены из топа. Например, админа блога, то есть Ваш.
Прописав необходимые настройки, сохраняем произведенные изменения.
Далее необходимо задать с помощью стилей css стиль отражения формы топ комментаторов, то есть фон, расположение, цвет границ и так далее. Делаем это с помощью стилей, которые прописываем в файл style.css используемой темы. У меня данный код выглядит следующим образом:
.top-comment { height:100%; background: #ffffff; margin-top:-10px; } .top-comment table { min-height: 100%; height:100%; margin: 20px 0px 0px 5px; } .top-comment table td { float: left; padding: 0; width: 70px; } .top-comment .avatar-top img { border: 3px solid #dfebe1; } .top-comment .avatar-comment { font-size: 12px; margin: 0px -10px 10px 0px; } |
Подробно, объяснять что за что отвечает не буду. Даже при минимальных знаниях css можно все разобрать, но если у Вас и таковых нет, то обязательно возьмите на вооружение бесплатный курс по css.
Теперь нам только осталось вывести сам топ комментаторов на блог с помощью кода :
<!--?php sp_top_commentator(); ?--> |
который прописываем в файл single.php в необходимом для Вас месте в случае, когда у Вас сайдбар выводится вручную. Об этом я подробно писала в материале “Как делала верстку боковой панели и ставила табы в сайдбар”, у меня это выглядит следующим образом
Если же у Вас сайдбар выводится с помощью виджетов, то используйте виджет произвольного html-кода. В любом случае сохраняем произведенные изменения и в итоге у нас появляется вот такой вот топ комментаторов, который мы вывели при помощи простого кода.
Ну вот по идеи и все. Все остальное зависит от Вашей фантазии.
На этом я сегодня с Вами буду прощаться, но в следующей статье Вас ждет не менее интересная информация из которой Вы узнаете, как можно задержать посетителя оставившего свой первый комментарий у Вас на блоге. Поэтому не забудьте подписаться на обновления блога Отчаянной, чтобы не пропустить что – то важное.
И в заключение обещанный мини конкурс “Кто больше?”, который не потребует от Вас особых усилий или знаний.
Думаю, не сложно. Так что читайте блог, тем более в мае будет огромное количество сюрпризов.
Пока – пока.
С уважением, Наталья Яшина
Возможно Вам это будет интересно:
Вам понравилась статья? Расскажите о ней друзьям!
Светлана, все подправила. Код копируете и вставляете в простой текстовый файл, и удаляете строку копирайта моего блога, которая выглядит вот так Read more: http://www.lediseo.ru/vyvodim-top-kommentatorov-s-pomoshhyu-koda.html#ixzz2EqGOs8ZW. Получившийся чистый код топ комментаторов прописываете в файле functions.php
Такая ошибка может возникнуть если Вы не правильно вставили код, вернее не там. Открыв файл functions.php на редактирование, спускаем в самый низ кода и перед закрывающимся ?> и вставляем код, позволяющий выводить топ комментаторов.
Антон , чтобы топ комментаторов красивенько смотрелся на сером фоне вам необходимо проработать стили , а именно изменить .top-comment{height:100%;background:#ffffff;} где backgroun отвечает за фон формы комментариев