wp_rel_nofollow()
Добавляет rel="nofollow" ко всем элементам <a> в переданном тексте. Внутренние ссылки пропускаются.
Если ссылка внутренняя (ведет на страницу текущего сайта), то атрибут nofollow добавлен не будет.
Функция ожидает экранированный контент (с обратными слэшами). Переданный контент сразу обрабатывается через stripslashes() и затем wp_slash() после обработки, перед возвращением. Поэтому если контент не экранирован, то в нем могут появится обратные слэши.
Смотрите также:
Работает на основе: wp_rel_callback()
Хуков нет.
Возвращает
Строку. Отформатированный контент.
Использование
wp_rel_nofollow( $text );
- $text(строка) (обязательный)
- Контент, который может содержать HTML теги А.
Примеры
#1 Пример добавления ко всем ссылкам в тексте атрибута rel="nofollow"
$text = 'Человеку нужен смех, как цветку солнечный свет. Если бы случилось так, что смех вымер, человечество превратилось бы в зоосад или общество ангелов - стало скучным, угрюмым и застыло в величественном равнодушии. Читайте роман Джеймся Крюса: <a href="http://flibusta.net/b/162259">Проданный смех</a>.'; $text = wp_rel_nofollow( $text ); echo $text; // Получи ссылку: // <a href=\"http://flibusta.net/b/162259\" rel=\"nofollow\">Проданный смех</a>..
#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;
}
Список изменений
| С версии 1.5.0 | Введена. |
Код wp_rel_nofollow() wp rel nofollow WP 7.0
function wp_rel_nofollow( $text ) {
// This is a pre-save filter, so text is already escaped.
$text = stripslashes( $text );
$text = preg_replace_callback(
'|<a (.+?)>|i',
static function ( $matches ) {
return wp_rel_callback( $matches, 'nofollow' );
},
$text
);
return wp_slash( $text );
}