Как добавить nofollow к ссылкам из раздела Биография

В последнее время в блоге наблюдается просто лавина вопросов о профиле, о ссылках из него, о данных зарегистрированного пользователя. Например, пользователь Tram — Tram задал вопрос Как удалить Личные настройки и Биографию? И хотя ответ был найден, я все же предпочитаю пользоваться возможностями, которые предоставляют данные из Профиля. Самый интерересный раздел в профиле — это Биография. Вы можете написать там свое резюме, или любимый девиз, или дополнительные контактные данные, и если в блоге предоставляется возможность ее вывода, то такая информация оказывается весьма полезной, любопытной, а иногда и просто веселой. А если снабдить раздел Биография еще и поддержкой HTML, то с помощью этого раздела можно создать настоящую визитную карточку пользователя, со ссылками и красивым оформлением текста.

Чтобы разрешить использование разметки HTML в различных описаниях, в том числе и в разделе Биография, как я уже писал ранее, нужно добавить в файл functions.php используемой вами темы следующий код:

$filters = array('pre_term_description', 'pre_link_description', 'pre_link_notes', 'pre_user_description');
foreach ( $filters as $filter ) {
	remove_filter($filter, 'wp_filter_kses');
}

foreach ( array( 'term_description' ) as $filter ) {
	remove_filter( $filter, 'wp_kses_data' );
}

Полной поддержки разметки HTML из-за политики безопасности все же не будет, но упрощенная разметка работает — вы сможете вставлять ссылки, выделять жирным шрифтом слова.

Однако есть один недостаток — ссылки из раздела Биография будут индексируемые, и вы никак не сможете вставить в них rel=»nofollow». Как же контролировать их индексацию? Покопавшись немного в коде для вставки nofollow в разные разделы, сворганил по аналогии со вставкой nofollow в ссылки комментариев простенький фильтр. Откройте все тот же файл functions.php (чего там только нет в нем!), и вставьте такой код:

function wp_nofollow($comment) {
    return str_replace('<a ', '<a rel="nofollow" ', $comment);
}
add_filter('the_author_description', 'wp_nofollow');

Теперь сколько бы ссылок вы ни вставили в текст Биография, ко всем им будет автоматически добавляться rel=»nofollow». Кстати, этот же фильтр можно использовать, чтобы добавить и специальное оформление к таким ссылкам. Например:

function wp_nofollow($comment) {
    return str_replace('<a ', '<a class="biolinks" rel="nofollow" ', $comment);
}
add_filter('the_author_description', 'wp_nofollow');

Оформление класса class=»biolinks» можно задатьв файле style.css. В общем, пора пользоваться.

tiaurus

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

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