Здравствуйте дорогие друзья и посетители моего блога.В сегодняшней статье, вы узнаете как в виджете установить «Лучший Комментатор месяца».
Можно конечно установить с помощью плагина, об этом прочитайте в статье моего блога ЗДЕСЬ
Но так как вы знаете что плагины нагружают движок, я покажу вам как установить php-код в виджете без плагина.
Заходим в консоль блога, открываем Внешний вид, находим Редактор и открываем его.
Заходим в Функции темы(functions.php), находим тег < ?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 55 |
// комментаторы без плагина function sp_top_commentator (){ global $wpdb; $length = 8; // Максимальная длинна имени в символах, если стоит 0, то имя не обрезается $month = true; // true — за текущий месяц, false — за все время $comment = true; // показывать количество комментариев $nofollow = true; // ссылки nofollow $count = 12; // количество комментаторов $col = 4; // количество колонок $avatarSize = 55; // размер аватара $exceptionEmail = 'krendelkar@mail.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 = ; foreach ($results as $result){ if ($i>=$col) { $output .= «</tr><tr>»; $i = ; } $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, , $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; } // комментаторы без плагина |
Теперь чтобы красиво оформить вывод комментаторов.Мы заходим в Таблицу стилей(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 35 36 37 38 39 40 |
//стили топ комментаторов .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: 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: 3px ; border-radius: 50%; -moz-border-radius: 50%; -webkit-border-radius: 50%; } .top-comment .avatar-comment { font-size: 12px; } //стили топ комментаторов |
Здесь я уже подредактировал и сделал аватарки круглыми.
Теперь что бы у вас был топ комментаторов, в виджете прописываете вот этот код:
<?php sp_top_commentator (); ?>
Обновляемся и смотрим что у нас получилось.
Поздравляю, теперь у вас есть «Топ комментатора».
Но бывают и исключения, некоторые темы сопротивляются скриптам, по этому бывают ошибки или вообще ни чего не происходит.Если вы столкнулись с такой проблемой, тогда вам нужно зайти в Редактор и function.php, после тега <?php вставляем следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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; } |
Обновляемся, теперь работать будет 100%.
Надеюсь с настройками разберетесь, если возникнут вопросы, обращайтесь.
С Уважением к Вам, Игорь Александрович
Здравствуйте Игорь.Я еще только учусь.И буду рада, если вы мне поможете.Страшновато лезть в код, но все равно приходиться, старый wordpress и не могу обновить, не устанавливаются плагины. Так что если получится — буду вашим постоянным читателем, еще кое- что хочу сделать без плагинов, придется заполнять форму.
глаз бога по номеру
За ранее спасибо,Тамара.
Здравствуйте Тамара.Не надо бояться начинаний.Самое главное,перед тем как вставлять коды,сохраните исходный код вашего блога.
Удачи.
Отлично,мне как раз нужен был код для круглых аватаров.
Спасибо,жду новинок.
Привет теска! Давно не был у тебя в гостях, а здесь так много уже всего интересного появилось,смотрю блог развивается. Желаю и в дальнейшем,тебе творческого вдохновения!
А данная статья клевая,но я пока плагином пользуюсь.
Спасибо Игорь,заходи по чаще.
Спасибо огромное за интересный материал. Сейчас же приступлю к делу.
Привет всем.Игорь спасибо за статью.У меня все получилось.
А я пока развиваю блог и мне рановато о комментаторах задумываться.
Спасибо вам за ценную информацию.
Уже также установил
Спасибо за информацию, это помогло
Чувствуется творческий подход к теме статьи, респект и уважуха)
Топ комментаторов установил, спасибо за помощь
Ну вот, попробовал вставить Ваш код, но увы, ничего не получилось. То есть после вставки в файл функцион, блог просто тупо пропадает Вот как то так.
Привет Андрей,это у меня ошибка в коде была.
Я обновил статью и отличный код выставил,если опять возникнут трудности,вставьте код находящийся в конце поста и все будет отлично.
Удачи.
Все это конечно нужно на блоге, но как по мне, я только с помощью плагина буду устанавливать