В комментариях к посту Как убрать 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 для текстов комментариев
Это решение не зависит от обновлений, и относится только к текущей теме.
Интересно конечно, только вот когда я вставил эти строки в файл темы: function.php, у меня вверху сайта появились эти строки и все! Может их нужно какими-то тегами закрыть или что?
А куда вы их ставите? Поставьте в самое начало, на следующей строчке сразу после
Забыл поставить галочку, чтобы получать комменты по мылу!:)
А я ставил вне тегов
Сайт переставал работать, если я добавлял одновременно функцию “…чтобы убрать nofollow” и функцию для “…не просто rel=”nofollow”, а rel=”external nofollow”.
Оставил только вторую и сайт заработал.
Почему-то не получается никак…
Тоже озадачился вопросом удаления а rel=”external nofollow”. Воспользовался вышими скриптами и вот рез-тат:
Первая функция прекрасно убирает nofollow.
А вот третья никак не хочет убирать rel=”external “.
В итоге я воспользовался только одной первой функцией, убрав rel=’external’ в строке $return = “$author“;
всё вроде работает адекватно.
Я в программинге не очень, поэтому буду признателен, если уважаемый автор прокомментирует такой вариант.
Т.е. в принципе можно ли вносит такие правки?
А чем вам external не угодил? Оставьте этот тег в покое, не заморачивайтесь особо на его счет. Уберите nofollow – и будет вам счастье.
Ну а по поводу правок – можно :)
Можно установить плагин Dofollow и он сам автоматически уберёт теги nofollow. Я так в принципе и сделал.
PS. Мой блог – доффолов.
Супер, перепробовал кучу кодов, только ваш помог, с меня ретвит.