WordPress: Неактивные текстовые "ссылки" в комментариях

После того, как на блоге немного подросли пузомерки (PR 3, ТИЦ 30), участились комментарии от людей, которые пишут одно простое предложение по теме поста и в поле "сайт" указывают ссылку на коммерческий сайт. То есть  комментарий добавляет явно не спам бот, а живой человек, но комментирует он лишь для того, чтобы получить ссылку, даже если она nofollow. После оставленного комментария он больше не возвращается и на ответы в комментариях не отвечает.

Потому я решил немного изменить политику комментирования, сделать и чтоб адрес сайта комментирующего оставался, и чтоб люди были мотивированы оставлять развернутые и полезные комментарии. Идея проста: если человек оставил комментарий длиною более 250 символов (без учета пробелов), то ссылка становиться активной, правда nofollow (я еще не готов к тому чтобы стать dofollow-блогером). Ну а если человек оставил короткий комментарий, например с благодарностью, то его комментарий будет без активной ссылки, то есть адрес сайта будет упоминаться в виде текста.

Получается честный обмен - я получаю порцию уникального текста в виде развернутого комментария, комментатор получает nofollow-ссылку которая исходя из сегодняшних SEO-реалий тоже цениться, особенно если сайт не с нулевыми пузомерками. Таким образом я мотивирую оставлять более длинные комментарии, уменьшаю количество людей желающих написать короткий-комментарий-ради-ссылки (экономлю свое время) и закрываю излишние "утекание" веса страниц.

Чтобы реализовать эту идею, пришлось поправить файл comments.php в своем шаблоне.

Я заменил в этом файле стандартный код, который отвечает за вывод комментариев:

<ol class="commentlist">
<?php wp_list_comments(); ?>
</ol>

на свой:

<?php
function mytheme_comment($comment, $args, $depth) {
$GLOBALS['comment'] = $comment;
extract($args, EXTR_SKIP);

if ( 'div' == $args['style'] ) {
$tag = 'div'; $add_below = 'comment';
} else {
$tag = 'li'; $add_below = 'div-comment';
}
?>
<<?php echo $tag ?> <?php comment_class(empty( $args['has_children'] ) ? '' : 'parent') ?> id="comment-<?php comment_ID() ?>">
<?php if ( 'div' != $args['style'] ) : ?>
<div id="div-comment-<?php comment_ID() ?>" class="comment-body">
<?php endif; ?>
<div class="comment-author vcard">
<?php if ($args['avatar_size'] != 0) echo get_avatar( $comment, $args['avatar_size'] ); ?>
<?php $author_url = substr(get_comment_author_url(),7);
if ( substr($author_url,strlen($author_url)-1,1) == '/' ) { $author_url = substr($author_url,0,strlen($author_url)-1); };
?>
<?php
$comment_len = mb_strlen(str_replace(" ","",get_comment_text()),'UTF-8');
if ( ($comment_len < 250) && (strlen($author_url) > 0)) {
printf(__('<cite class="fn">%s</cite> <span class="says">says:</span>'), get_comment_author() ." (". $author_url .")");
}
elseif ( strlen($author_url) == 0 ) {
printf(__('<cite class="fn">%s</cite> <span class="says">says:</span>'), get_comment_author());
}
else {
printf(__('<cite class="fn">%s</cite> <span class="says">says:</span>'), get_comment_author() ." (<a href=\" ". get_comment_author_url() ."\" rel=\"external nofollow\">" . $author_url . "</a>)");
}
?>
</div>
<?php if ($comment->comment_approved == '0') : ?>
<em class="comment-awaiting-moderation"><?php _e('Ваш комментарий проходит модерацию.') ?></em>
<br />
<?php endif; ?>

<div class="comment-meta commentmetadata"><a href="<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ) ?>">
<?php
/* translators: 1: date, 2: time */
printf( __('%1$s at %2$s'), get_comment_date(), get_comment_time()) ?></a><?php edit_comment_link(__('(Edit)'),' ','' );
?>
</div>

<?php comment_text() ?>

<div class="reply">
<?php comment_reply_link(array_merge( $args, array('add_below' => $add_below, 'depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
</div>
<?php if ( 'div' != $args['style'] ) : ?>
</div>
<?php endif; ?>
<?php
}
?>
<ol class="commentlist">
<?php wp_list_comments('type=comment&callback=mytheme_comment'); ?>
</ol>

В строке

if (mb_strlen(str_replace(" ","",get_comment_text()),'UTF-8') < 250) {

Цифра 250 отвечает за количество символов (без учета пробелов) начиная с которого комментарии будут с активной ссылкой.

Кстати с помощью этого кода можно сделать свой блог dofollow-блогом и не боятся, что он снова станет nofollow после обновления wordpress. Так как обновления WordPress не затрагивают файлы шаблонов. Нужно лишь убрать слово "nofollow" из строки:

printf(__('<cite>%s</cite> <span>says:</span>'), get_comment_author() ." (<a href=\" ". get_comment_author_url() ."\" rel=\"external nofollow\">" . $author_url . "</a>)");

Основная часть кода взята с официального сайта wordpress со статьи которая описывает функцию вывода комментариев: codex.wordpress.org/Function_Reference/wp_list_comments

Кстати, я задался вопросом, а сколько у меня сейчас комментариев  длиной более 250 символов, с указанием ссылки на внешний ресурс и что это за комментарии? Ответ на этот вопрос можно узнать с помощью sql запроса:

SELECT `comment_content`, char_length(`comment_content`),`comment_author_url`
FROM `wp_comments`
WHERE char_length(`comment_content`) > 250
AND char_length(`comment_author_url`) > 7
AND `comment_approved` = 1
AND `comment_author_url` NOT LIKE '%elims.org.ua%'
ORDER BY char_length(`comment_content`)

Ниже к статье оставляю два комментария, первый короткий и второй длинный, чтобы показать как будут выглядеть короткие и длинные комментарии.

Советую прочесть запись о том, как подсчитывать и выводить информацию о количестве набранных символов в форме комментирования - благодаря этому комментаторам будет удобно узнавать сколько символов они напечатали.

Также я решил сделать не кликабельными те ссылки, которые находятся в самом тексте комментария. Для этого необходимо добавить код в файл functions.php в нужном шаблоне:

<?php
// start: отключаем кликабельные ссылки в комментариях
remove_filter('comment_text', 'make_clickable', 9);
function remove_http_in_comments($string) {
$string = str_ireplace('http://', '', $string);
return $string;
}
add_filter('comment_text', 'remove_http_in_comments');
function strip_comment_links($content) {
global $allowedtags;
$tags = $allowedtags;
unset($tags['a']);
$content = addslashes(wp_kses(stripslashes($content), $tags));
return $content;
}
add_filter('comment_text', 'strip_comment_links');
// end: отключаем кликабельные ссылки в комментариях
?>
Понравилось? =) Поделись с друзьями:

Обсуждение записи “WordPress: Неактивные текстовые "ссылки" в комментариях”

  1. Владимир Демянович (elims.org.ua) says:

    Этот комментарий короткий, без активной ссылки

  2. Владимир Демянович (elims.org.ua) says:

    А вот это развернутый и длинный комментарий. В нем будет активная безанкорная ссылка, которая кстати нынче воспринимается как естественная, так как она одновременно и nofollow, и без анкора. Ведь в ссылочном профиле нужны не только dofollow ссылки с анкорами заточенными под определенные запросы, иначе может заподозрить Ваш сайт в не естественном ссылочном профиле. Полезно свой ссылочный профиль разбавлять ссылками без анкоров, без коммерческих анкоров, ссылками с nofollow. Это придаст Вашему ссылочному профилю естественности.

  3. Интересная идея, но боюсь что пользователям которые оставляют коммент ради ссылки даже не заметят что их ссылки в виде текста… по причине того что они не возвращаются на сайт. Я к примеру комментарии где в место имени ключевые слова просто баню… они то даже не содержат смысловой нагрузки в большей части. Так что не жалко.

  4. Владимир Демянович (elims.org.ua) says:

    вспомнил) Я еще хотел рядом с надписью «Оставить комментарий» опубликовать текст, с предупреждением что короткие комментарии будут опубликованы без ссылки, может так заметят =)

  5. SEOjedi (promotiger.ru) says:

    Я, если честно не заметил. Цвет шрифта в глаза не бросается, и по размеру одинаков с текстом на странице. Получается, как в договоах на кредиты под символом (*). Вроде все правильно прочитал и сделал, а потом оказываешься должным. Да и вообще, как по мне, то или твой блог или дофоллоу или нет, а так, стакан наполовину пуст или наполовину полон получается )))

  6. Владимир Демянович (elims.org.ua) says:

    SEOjedi:
    «Я, если честно не заметил. Цвет шрифта в глаза не бросается, и по размеру одинаков с текстом на странице.» — а вот мне и моему другу понравился цвет, мол выделяется и органично, мягко вписывается в цветовую схему блога. Есть какие-то предложения по поводу цвета?) Может действительно подскажешь более удачный цвет для этой надписи, желательно в не просто «красный», «зеленый», а в hex-коде, иначе будет слишком расплывчато.

    «как по мне, то или твой блог или дофоллоу или нет, а так, стакан наполовину пуст или наполовину полон получается» — не совсем понял что имелось в виду =)

  7. SEOjedi (promotiger.ru) says:

    По поводу цвета может такой #D11900? Красный, но глаз не режет. И на 1-2 побольше, что бы выделялся. ИМХО.
    Касаемо стаканов — забей ))) это я так, по умничал…
    Я смотрю, у тебя беда, как и у многих из Украины, ТиЦ на 0 ушел…

  8. Владимир Демянович (elims.org.ua) says:

    SEOjedi, спасибо за критику. Да, цвет не напрягающий и не такой «кислотный». Сейчас досмотрю фильмец и поменяю. 1-2 побольше чего? Пикселей или пунктов?

    А по поводу ТИЦ: вот же ж, незадача, а я вроде все правильно делал, наоборот только роста ожидал =) Правда беспокоится еще рано, скорее всего сбой, так как яндекс вебмастер говорит что у меня ТИЦ 30

  9. SEOjedi (promotiger.ru) says:

    Пунктов. Ну, чтобы немного больше был, чем текст на странице.
    Вебмастер и не может так быстро раздуплиться, он завтра покажет или послезавтра. А ТиЦ проверяется вот таким вот образом yaca.yandex.ru/yca/cy/ch/elims.org.ua/

  10. Владимир Демянович (elims.org.ua) says:

    SEOjedi, А еще можно проверять вот таким способом:
    bar-navig.yandex.ru/u?url=http%3A%2F%2Felims.org.ua&show=1
    Все таки к вебмастеру у меня больше доверия =)
    Интересно в чем может быть массовая причина падения ТИЦ? Есть какие-то догадки? Кто-то уже как-то это комментировал?

  11. SEOjedi (promotiger.ru) says:

    Догадок нет.. но у многих в Украине ТиЦ на 0 слетел. Ждем завтра, вернее уже сегодня ))

  12. SEOjedi (promotiger.ru) says:

    О как Яндекс делает, они в FAQ своем фразу подкорректировали: help.yandex.ru/catalogue/citation-index/tic-rules.xml
    последний абзац.
    Теперь под это можно любые движения приписать….

  13. Владимир Демянович (elims.org.ua) says:

    SEOjedi, эх… Комментирование dofollow-блогов сочли за накрутку ТИЦ. Больше я никаких действий не предпринимал, относительно внешней оптимизации =)

  14. Алексей Ершов (wordpress-life.ru) says:

    Все же, полагаю, что ссылки с nofollow утечки веса не дают. Возможно, это может повлиять на траст сайта. На своем блоге заметил, что когда появились первые комментарии, а страниц в индексе раз два и обчелся, то траст уменьшался на одну позицию.
    Я смотрю на блоги с высокими пузомерками и там куча комментариев и ссылки в nofollow, у Деваки, вообще dofollow и проходят и короткие комменты и эмоции — и все ок.
    Кстати, пришло такое предположение, что тИЦ ты потерял как раз из-за этого телодвижения с закрытием ссылок. Было куча ссылок, вдруг большинство из них закрылись. Возможно, Яндекс воспринял эти ссылки как продажные?

  15. Владимир Демянович (elims.org.ua) says:

    Может быть и из-за этого. Тогда ТИЦ со временем вернется =) Я из этого трагедии не делаю, так как для меня важна посещаемость, а ТИЦ важен для тех, кто хочет продавать ссылки. Считаю что телодвижения с закрытием ссылок принесут мне больше пользы, чем негатив от утери ТИЦ. Уже даже с комментариями улучшилась тенденция — они стали более качественные. Перестали регулярно появляться комментарии вроде «спасибо, очень интересная информация, узнал много интересного»

    По поводу того что nofollow утечки не дает, тут у меня другое мнение, исходя из того что говорят об этом топ seo-блогеры. Это вроде уже как общепризнанный факт.

  16. Uglion (uglion.ru) says:

    Спасибо, очень интересная информация, узнал много интересного

  17. Alex (dljzarabotka.ru) says:

    Думаю на первых порах, когда блог нулевой как у меня dljzarabotka.ru , резонней будет сделать его именно Dofollow. Тем более, что модерация всё равно пока ручная. Вот в последствии, когда подрастёт ТИЦ и PR, а также появятся BAD комментарии, обязательно приму на вооружение Ваш метод. Хотя возможно от Dofollow отказываться не буду, но определённые танцы с бубном всё же устрою.

  18. Владимир Демянович (elims.org.ua) says:

    Alex, ничего не мешает совместить оба метода: сделать ссылки dofollow для комментариев более 250 символов =) Так Ваш блог dljzarabotka.ru? могу добавлять его в свой список?

  19. Николай (tema3.ru) says:

    В какой версии вордпресс это можно применить? Я в WordPress 3.5.2 в теме Twenty Twelve в файле comments.php не могу найти код, который нужно заменить, также искал в файле comment-template.php в папке wp-includes.

  20. Николай (tema3.ru) says:

    Заменил другой код, заработало, спасибо!

  21. Владимир Демянович (elims.org.ua) says:

    Николай, поздравляю, сами разобрались =)

  22. Юрий says:

    Пару дней назад создал свой блог, посмотрим что получится. Добавил твой в закладки, многое подчеркну для себя. Кстати и эта статья мне пригодится, но не очень скоро,мой блог еще не заметен поисковикам, буду учить СЕО. Кстати комментарии не менее информативны чем статья. Всем спасибо!
    P.S. Буду рад если добавите сами ссылку на мой сайт, хотя и написал уже более 250 символов)))

  23. Иван (zdorovko.info) says:

    И почему я не дочитал тогда эту статью сразу до конца. Нашел ее опять и, типа, ща укажу на косяк, что код делает ссылки нофоллоу в любом случае, какой плагин бы не стоял или корректировки в comment-template.php не делались.
    А оно смотрю есть такое уточнение :-), по-поводу удалить nofollow и все будет норм, а тогда я не заметил :-(.

    П.С. Как у Вас дела с повышением результатов в Яндексе? А то я с подобной проблемой уже и метрику поставил, мол смотри – поведенческие на сайте не самые же хужие. А Яндексу по барабану, как был 1-3 % из него, так и осталось.

    И еще, у моего сайта ТИЦ уже 10, можно это в табличке подкоректировать?

  24. Владимир Демянович (elims.org.ua) says:

    Когда я метрику поставил, мой сайт проиндексировался, ато до этого сидел в АГС с одной лишь страницей в индекс Яндекса.

    Яндекс все еще дает ничтожный трафик — 2%. Позиции туда-сюда колеблются.

    Эх! Любил бы меня Яндекс как гугл, была бы у меня посещаемость около 4 000 в сутки =)

  25. Ксенья Юрьевна says:

    Все у вас здесь скучно и не интересно, хотя вы и дофаллов.

Обсудить