# Функция WP_REL_NOFOLLOW() в WordPress
Функция WP_REL_NOFOLLOW() добавляет атрибут rel="nofollow" ко всем HTML элементам <a> (ссылкам) в содержимом.
## Использование функции
```php
wp_rel_nofollow( $text );
Параметры
- $text (string, обязательный) — содержимое, которое может содержать HTML элементы
<a>.
Примеры использования
Пример 1: Добавление атрибута rel="nofollow" ко всем ссылкам в тексте
$text = 'Человеку нужно смеяться, как цветку нужно солнце.
Если бы смех стал исчезать, человечество стало бы скучным,
угрюмым и замерло бы в величественном безразличии.
Прочитайте роман Джеймса Крюса:
Проданный смех';
$text = wp_rel_nofollow( $text );
echo $text;
// Результат будет:
// Проданный смех.
Пример 2: Добавление атрибута nofollow ко всем внешним ссылкам в содержимом
add_filter('the_content', 'wp_posts_nofollow');
function wp_posts_nofollow($content) {
return stripslashes(wp_rel_nofollow($content));
}
Пример 3: Улучшение обработки внешних ссылок
В этом примере мы также добавим атрибут target="_blank", чтобы ссылки открывались в новой вкладке.
add_filter('the_content', 'external_links_sanitizer');
function external_links_sanitizer($content) {
$content = wp_unslash(wp_rel_nofollow($content));
$content = str_replace('rel="nofollow"', 'target="_blank" rel="nofollow noindex noopener"', $content);
return $content;
}
Возвращаемое значение
Функция возвращает строку с преобразованным содержимым.
История изменения
Функция wp_rel_nofollow() была введена в версии 1.5.0 WordPress.
Код функции
Функция определена в файле wp-includes/formatting.php и выглядит следующим образом:
function wp_rel_nofollow($text) {
// Это фильтр перед сохранением, текст уже экранирован.
$text = stripslashes($text);
$text = preg_replace_callback(
'||i',
static function($matches) {
return wp_rel_callback($matches, 'nofollow');
},
$text
);
return wp_slash($text);
}
Связанные функции
- links_add_target() — добавляет атрибут target к ссылкам.
- make_clickable() — делает текстовые ссылки кликабельными.