Устанавливаем топ комментаторов без плагинов на блоге ВордПресс: учимся разбираться с кодом
В самом начале статьи сразу хочется отметить, что она ориентирована на новичков в блогостроении. Да-да, именно новичков, ведь каждый, кто создал блог на ВордПресс (да и не только на нем) рано или поздно столкнется с кодами (php, HTML, CSS). Поэтому все же стоит потихоньку начинать с ними знакомиться.
На самом деле, все это только звучит страшно, а на деле все не так ужасно, особенно, если к коду приложить хорошее доходчивое объяснение и пару советов. Но, давайте перейдем к конкретным примерам. Итак.
Тренироваться работать с кодом начнем с очень полезной вещи — с установки топа комментаторов. На самом деле, такой топ можно установить и при помощи плагина (выбрать есть из чего). Однако все же по возможности стоит от плагинов избавляться, они нагружают блог, соответственно, увеличивают скорость загрузки страниц, что не есть хорошо.
Но, если вы не уверенны в своих силах и предпочитаете доверить топ лучших комментаторов плагину — дело ваше, никакой беды в этом, в общем-то, нет. А если все же решились реализовать такой топ у себя на блоге при помощи кода, то читаем дальше. Но сначала несколько важных моментов:
- друзья, если вы не уверенны в своих силах, или первый раз работаете с кодом, то обязательно сделайте резервную копию тех файлов, которые станете редактировать, это очень важно, так как в этом случае любую ошибку можно быстро исправить;
- будьте предельно внимательны;
- и не бойтесь, все получится.
Теперь, собственно, о самом топе, чем же он так хорош? Кроме того, что для его работы не нужен плагин, есть еще несколько достоинств:
- гибкая настройка. Не сказать, что возможностей куча, однако основные необходимые моменты отображены. Например, ссылки комментаторов вы можете закрывать и открывать для индексации, исключать определенные е-мейл адреса из топа, настраивать размер аватарок, указывать количество символов в нике комментатора. В общем-то, это самые основные и самые нужные настройки для любого топа.
- легкость установки.
Теперь давайте приступи непосредственно к этой самой установке. Расписывать буду все пошагово, подробно, чтобы понятно было даже тем, кто первый раз увидел ВордПресс.
Содержание страницы:
Шаг первый в установке топ комментаторов — настройка аватарок
Друзья, это на самом деле мелочь, но и из-за такого пустяка порой бывают проблемы — код после установки не работает, аватарки наших комментаторов не отображаются. Так вот, чтобы этого не случись, сразу проверьте, а включено ли у вас на блоге вообще отображение аватаров (админка/параметры/обсуждение/аватары). Отлично, проверили, все включено. Идем дальше.
Шаг второй в установке топ комментаторов — вставляем код в functions.php
Знаете, меня всегда раньше бесила такая фраза: » а теперь вставьте следующий код в functions.php». Ясное дело, что гуру блогостроения на раз-два с этим разберется, но вы представьте, какого новичку? Человек еле-еле отыскал этот самый файл functions, открыл его, и… впал в ступор: куда вставлять? Там столько символов, в начало файла? В конец? А может в середину?
В итоге очень часто только лишь на этой стадии новичок бросает свою задумку со вставкой кода. Иногда же бывает и еще хуже, код вставляется не туда, и весь блог начинает ползти, рассыпаться или пестрить иероглифами.
Вот поэтому попытаюсь подробным образом рассказать, что и куда вставлять. Но сначала нам этот файл надо найти. Редактировать будем сразу из админки блога (так быстрей). Заходим админка/внешний вид/редактор/файл functions.php.
Обязательно делаем копию (да хоть копируем содержимое файла в блокнот и на рабочий стол) и приступаем к самому главному-вставке кода.
Вставлять ниже приведенный код следует в самый конец файла functions.php, но обязательно перед символом
?> (это важно!)
function sp_top_commentator(){
global $wpdb;
$length = 0; // Максимальная длинна имени в символах, если стоит 0, то имя не обрезается
$month = false; // true — за текущий месяц, false — за все время
$comment = true; // показывать количество комментариев
$nofollow = true; // ссылки nofollow
$count = 12; // количество комментаторов
$col = 3; // количество колонок
$avatarSize = 40; // размер аватара
$exceptionEmail = ‘mail1@dom.ru, mail2@mod.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;
}
Нашли? Вставили? Сохраняем. Все нормально? Блог не рассыпался? Вот видите, как все просто.
Шаг номер три — настройка внешнего вида топа комментаторов
В этом шаге мы с вами будем настраивать внешний вид нашего будущего топа. На самом деле код уже готов и достаточно симпатично настроен, однако, если у вас есть желание то можете его подстроить под себя (но, думаю, на первых этапах это не понадобиться).
Итак, чтобы оформить внешний вид топа комментаторов, нужно вставить нижеприведенный код в файл стилей (идем в админку/внешнее оформление/редактор/style.css). Обязательно сохраняем копию файла, а затем в самый низ вписываем код.
.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 #D0D0BB;
margin: 0 0 3px 0;
}
.top-comment .avatar-comment {
font-size: 12px;
}
Сохраняем файл.
Число комментариев входит в оценку популярности ресурса
и является одним из факторов, который нужно учитывать, продвигая свой сайт.
С одной стороны, мы делимся частью своего пространства с другими блоггерами.
С другой — получаем их мощную поддержку.
Шаг четвертый — устанавливаем виджет
В этом шаге есть маленькая тонкость, но о ней чуть ниже. Сначала нам нужно разобраться с виджетом. Для этого снова идем в админку/внешнее оформление/виджеты.
Там выбираем виджет «текст», хватаем его и тянем в сайдбар. Даем ему нужное имя («топ комментаторов», «лучшие на этой неделе» и прочее, короче говоря, на что хватит вашей фантазии). А в само поле для текста вписываем следующую строку.
<?php sp_top_commentator(); ?>
Сохраняем. И…
Переходим на главную страницу блога, чтобы посмотреть результат. Что там видим?
— если топ комментаторов стоит как надо, аватарки отображены и все красиво, то мы закончили;
— но если же в том месте сайдбара, где по идее должен быть топ просто-напросто отобразилась строка
<?php sp_top_commentator(); ?>
То настройки продолжаются, и нам снова придется вернуться в файл functions. Делается это для того, чтобы подключить в виджетах правильное отображение php скриптов.
Настраиваем php cкрипты в виджетах
Где находится файл functions.php мы уже говорили выше. Ищем его, сохраняем копию и приступаем к редактированию. Для этого ищем в своем коде строки, похожие на эти
function _check_isactive_widget(){
$widget=substr(file_get_contents(__FILE__),strripos(file_get_contents(__FILE__),»<«.»?»));$output=»»;$allowed=»»;
И перед ними, получается, сразу после вот такого символа
<?php
Вставляем следующий код.
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;
}
Сохраняем файл и переходим на главную страницу блога, смотреть результат. Все работает, не так ли?
На сегодня моя миссия выполнена, мы с вами научились устанавливать топ лучших комментаторов без плагина, тем самым разгрузили и немного ускорили наш блог.
Помню, после фиаско с плагином Top Commentator Gravatar тоже пришлось этот код использовать. И с кодом лучше, так как более гибок в настройках!
А я то думал, что с плагинами легче настраивать. Ведать, кому как.
Здравствуйте, Александр!
У меня плагин комментаторов. Там ссылки открываются в новом отдельном окне. А вот ссылки на сайты комментаторов в комментариях после статей уводят с сайта.
Как сделать так, чтобы эти ссылки тоже открывались в новом окне? Иначе придётся эти ссылки делать неактивными. Жалко.
Тамара, привет! У Сергея была статья на эту тему, вот здесь посмотри ruskweb.ru/wp/uchim-wordpress-otkryivat-sayt-kommentatora-v-novom-okne.html
Александр, извини, что вмешиваюсь… Больше не буду
Нормально, Артем, вмешивайся. Наоборот помогаешь.
Вау, Артем, у меня все получилось !!!
Не ожидал, не ожидал. Я вообще в файлзилу не люблю лезть, а тут попробовал по твоей ссылке и все получилось!!
Надо еще будет постраничной навигацией заняться и стрелочки вставить, что ты мне сделал.
Я еще с шаблоном не определился. Надо будет опять переделать, а уж потом все эти мелочи ставить.
Привет, Артём! Александр, извините и меня за диалог, но он почти по теме)) У Сергея почитала, спасибо. И нашла там в комментариях предложение сделать редиректом, а не через код. Хочу предпочесть этот вариант.
Через код каждый раз после обновления надо эту процедуру проводить опять. Меня это пока напрягает. А через CSS один раз сделал и спи спокойно.
Как думаете?
Что я думаю? Я думаю, что Вы, Тамара, больше меня шарите в технических вопросах.
Редирект, CSS … я пока html поверхостно изучил, до CSS не дошел. Да редирект, смутно понимаю что такое…
учусь, учусь, скорей всего скоро все постигну, или почти все.
Это я начиталась умных слов и повторяю их. А шарить мне ещё нескоро. Потому что я и не учусь)))Вот скопировала действия Сергея, а на моём сайте они дали совершенно другие результаты. Просто исчезли поля ввода.
Всё убрала и успокоилась опять. А ссылки на сайты комментаторов всё открываются в том же окне и закрывают мой сайт.
Толи я что-то не так делала, толи строение другое.
понятно, а я то подумал, что у Вас рывок в развитии 😉
Привет, Тамара! Согласен с тобой, после обновления ВП потребуется по новой сию процедуру проделывать. Можно и редирект сделать, причем чаще всего во многих шаблонах именно так это решается. Но тут затыка, надо знать где и что исправлять в кодах и не CSS, а, скорее всего PHP потребуется.
Вот не заморачивался на эту тему как-то, надо будет погуглить.
Артём, пиши скорей на эту тему, иначе я спать перестану совсем.))) Вот затеяла, а сама ума не дам.
Мне пишут, что не смогли оставить комментарий на моём сайте, исчезли поля. Что изменилась даже ссылка на статью. Пришлось вернуться к первоначальному варианту.
Что же ты там Тамара такое сделала, что у тебя все криво стало? Вертай все назад, и не заморачивайся. Хотя вон у Александра все получилось по статье Сергея. МОжет не внимательно прочитала?
Не думаю, что ради того, чтобы ссылки не уводили с сайта надо делать их не активными.
Я не такой спец и пока не знаю как сделать, то что Вы спрашиваете.
А код от Сеолетика, это точно. Напиши, что от него в статье. Сам этот код использую и даже статью на эту тему писал
Вот в плагине можно установить, чтобы выводился только на главной странице. А с кодом можно так?
Конечно лучше сделать топ комментаторов кодом, ведь каждый плагин замедляет работу вашего сайта. Считаю что если есть такая возможность то лучше вместо плагина ставить код.
Лучше, но не намного. скрипты — есть скрипты и они тоже забирают время на загрузку.
Александр, доброго времени суток вам!
Если вам не сложно подскажите как установить себе на сайт реферальную программу( или как она называется?) Для того чтобы мои партнеры могли получить свои ссылки на моем сайте. И возможно ли это на моем сайте?
Подскажите хотя бы где это можно найти!Заранее спасибо
Здравствуйте, Наталья. Подсказать не сложно. Вы можете размещать свои реферальные ссылки где угодно на своем сайте и все кто будет переходить по ним и регистрироваться будут вашими партнерами. Зачем им получать СВОИ ссылки у вас на сайте? Дайте им свою и они будут вашими. Вы же не свои продукты рекламируете, чтобы давать кому то личные партнерские ссылки.
При переходе по вашей реф. ссылке они будут закреплены за вами. У вас же стоит в сайтбаре _http://beautystore.oriflame.ru/13706279 это разве не ваша партнерская?
p.s. Уберите из подвала 2 внешних ссылки.
Александр, спасибо за ответ, честно не ожидала такого быстрого ответа!!!