Как убрать nofollow из записей и комментариев

👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

В комментариях к посту Как убрать nofollow из комментариев | NoFollow Free меня спросили, а как вообще убрать атрибут nofollow из ссылок без использования плагинов? Я вспомнил ручной метод редактирования, однако поразмыслив позже, убедился, что действительно существует универсальный метод избавления от nofollow.

Ручной метод основан на редактировании файла comment-template.php, который находится в wp-includes. В этом файле нужно удалить все rel=”nofollow” и rel=”external nofollow”. Метод работает, но у него есть один существенный недостаток: после обновления WordPress вам снова придется редактировать этот файл.

Существует более универсальный способ избавиться от nofollow в блоге, не редактируя файлы движка. Он основан на использовании фильтра, который прописывается в файле functions.php. Откройте этот файл и добавьте в него такие строчки:

function comment_author_link_follow_innewwindow() {
global $comment;
$url    = get_comment_author_url();
$author = get_comment_author();
if ( empty( $url ) || 'http://' == $url )
$return = $author;
else
$return = "$author";
return $return;
}
add_filter('get_comment_author_link', 'comment_author_link_follow_innewwindow');

Этот фильтр убирает nofollow в ссылках авторов комментариев, ведущих на их сайты. А чтобы убрать nofollow в ссылках из текста комментариев и текста постов, нужно добавить такой фильтр:

function remove_nofollow($string) {
 $string = str_ireplace(' rel="nofollow"', '', $string);
 return $string;
}
add_filter('the_content', 'remove_nofollow'); // удаляем nofollow для текстов статей
add_filter('comment_text', 'remove_nofollow'); // удаляем nofollow для текстов комментариев

Если у вас используется не просто rel=”nofollow”, а rel=”external nofollow”, то нужно добавить еще один фильтр:

function remove_nofollow($string) {
 $string = str_ireplace(' rel="external nofollow"', '', $string);
 return $string;
}
add_filter('the_content', 'remove_nofollow'); // удаляем nofollow для текстов статей
add_filter('comment_text', 'remove_nofollow'); // удаляем nofollow для текстов комментариев

Это решение не зависит от обновлений, и относится только к текущей теме.

Создай свой первый сайт на WordPress

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

Оцените автора
Добавить комментарий

  1. Other

    Интересно конечно, только вот когда я вставил эти строки в файл темы: function.php, у меня вверху сайта появились эти строки и все! Может их нужно какими-то тегами закрыть или что?

    Ответить
    1. tiaurus

      А куда вы их ставите? Поставьте в самое начало, на следующей строчке сразу после

      <?php
      Ответить
  2. Other

    Забыл поставить галочку, чтобы получать комменты по мылу!:)

    Ответить
    1. Other

      А я ставил вне тегов

      Ответить
  3. Other

    Сайт переставал работать, если я добавлял одновременно функцию “…чтобы убрать nofollow” и функцию для “…не просто rel=”nofollow”, а rel=”external nofollow”.

    Оставил только вторую и сайт заработал.

    Ответить
  4. Алексей

    Почему-то не получается никак…

    Ответить
  5. GrandTourist

    Тоже озадачился вопросом удаления а rel=”external nofollow”. Воспользовался вышими скриптами и вот рез-тат:

    Первая функция прекрасно убирает nofollow.
    А вот третья никак не хочет убирать rel=”external “.

    В итоге я воспользовался только одной первой функцией, убрав rel=’external’ в строке $return = “$author“;

    всё вроде работает адекватно.

    Я в программинге не очень, поэтому буду признателен, если уважаемый автор прокомментирует такой вариант.
    Т.е. в принципе можно ли вносит такие правки?

    Ответить
    1. А чем вам external не угодил? Оставьте этот тег в покое, не заморачивайтесь особо на его счет. Уберите nofollow – и будет вам счастье.
      Ну а по поводу правок – можно :)

      Ответить
  6. Иван

    Можно установить плагин Dofollow и он сам автоматически уберёт теги nofollow. Я так в принципе и сделал.

    PS. Мой блог – доффолов.

    Ответить
  7. zmoe

    Супер, перепробовал кучу кодов, только ваш помог, с меня ретвит.

    Ответить
×
WordPress:
прокачай свой сайт!

Скидка на премиум темы и плагины

Успей забрать скидку ⋙