Приветствую всех читателей! Давно хотел установить на блог виджет топ комментаторов, и вот настал тот день. Да, за такое время уже давно можно было установить виджет и написать урок по установке.
Я всегда считал, что этот виджет для блога не важен. Правда, за собой замечал, что на других блогах я обращаю внимание на этот виджет. Иногда даже перехожу на сайт комментатора, чтобы посмотреть, о чем он пишет. Бывает, вижу фото людей, которых видел на других блогах.
Теперь я считаю, что этот виджет (виджет VK) блогу не повредит. Статьи на сайте будут больше комментировать, и вот почему: если Вы постоянный читатель, то, скорее всего Вам захочется попасть в топ комментаторов, чтобы Вас все видели. Еще, Вы можете получать дополнительные переходы на свой сайт.
Известно, что на продвижение сайта влияет не только оптимизация статей, но и поведенческий фактор, т. е., чем больше действий делает на сайте пользователь, тем лучше.
Устанавливаем виджет топ комментаторов
Многие считают, что устанавливать плагины на блог – плохо, даже очень плохо. Как я считаю, плагины не так страшны, как многие считают. Давайте разберемся, почему плагины устанавливать нежелательно.
- Плагины нагружают сервер
- Плагины дают лишние запросы к базе данных, за счет чего тормозят заргузку блога
- В плагинах часто скрываются внешние ссылки, которые не каждый может заметить и удалить
- И вообще, слово «плагин» звучит как-то плохо
А код, который мы устанавливаем, разве не вызывает дополнительные запросы, к базе? Разве не замедляет скорость загрузки сайта? Не влияет на работу сервера? Любой скрипт замедляет загрузку, поэтому здесь есть над чем подумать.
Плагин легко устанавливается без знания программирования и также легко удаляется. Плагин – это программа, которая написана на языке программирования, ведь так? Плагины пишут для расширения функционала других программ.
Не так страшны плагины, как их количество. У многих на сайте установлено много лишних плагинов, которые вовсе не нужны. Подумаешь, плагином больше, плагином меньше…
А Вы попробуйте отключить все плагины, и проверить, как блог будет загружаться без них. Поверьте, Вы приятно удивитесь. Возможно, многие не знают, но на продвижение существенно влияет и скорость загрузки страниц. Не зря ведь надо делать оптимизацию блога и чистить базу данных.Сам по себе движок 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 54 |
// Топ комментариев 1 блок function sp_top_commentator(){ global $wpdb; $length = 12; // длинна имени в буквах, если 0, то имя не обрезает $month = true; // true - за месяц, false - за все время $comment = true; // показывать число комментариев $nofollow = true; // ссылки nofollow $count = 6; // количество комментаторов в блоке $col = 3; // количество колонок $avatarSize = 60; // размер граватара $exceptionEmail = 'ammin@blog.ru, admin@blogg-life.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; } |
Теперь второй код надо вставить чуть ниже
1 2 3 4 5 6 7 8 |
// Топ комментариев 2 блок add_filter('widget_text','sp_widget_execute_php',100); function sp_widget_execute_php($text) { if(strpos($text,'<?') !== false) { ob_start(); eval('?>'.$text); $text = ob_get_contents(); ob_end_clean();} return $text; } |
Сохраните файл и проверьте, как работает блог. Нормально ли загружается? Теперь следующий код CSS надо вставить в файл 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 34 |
/*топ комментаторов*/ .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 #FFD700; margin: 0 0 3px 0; } .top-comment .avatar-comment { font-size: 13px; } |
Код CSS можно легко отредактировать, чтобы изменить вид виджета, что я собираюсь и сделать.
У меня много чего не установлено.
А че у самого не стоит?
Установил, работает) Спасибо автору
Было бы хорошо, если бы где-нибудь была картинка как этот виджет выглядит в Вашем исполнении.