Про то, как эта функция была добавлена в ядро WordPress, можете почитать здесь.
wp_rel_ugc( $text )
- $text
- (строка) Какой-то текст, который может в себе содержать ссылки, а может и не содержать.
Также про эту функцию вам нужно знать следующее:
- Если атрибут
rel
уже существует у функции, и даже имеет какое-то значение, то оно останется и удалено не будет. - Если атрибут
rel
уже содержит одно из значений – либоnofollow
либоugc
, то будут добавлены только недостающие, а это значит, что может поменяться их порядок. - На внутренние ссылки, указывающие на страницы вашего же сайта, атрибут
rel
добавлен не будет. - Функция вставит обратные слэши
перед двойными кавычками
"
, одинарными кавычками'
и другими обратными слешами. Если вам интересно, этот процесс происходит при помощи PHP функции
addslashes()
.
Пример:
$text = 'Привет, это <a href="#">ссылка</a>'; echo wp_rel_ugc( $text ); // Привет, это <a href="#" rel="nofollow ugc">ссылка</a> echo stripslashes( wp_rel_ugc( $text ) ); // Привет, это <a href="#" rel="nofollow ugc">ссылка</a>
Автоматическое добавление NOFOLLOW и UGC на ссылки в комментариях, а также про отключение этой функции.
Начиная с версии WordPress 5.3 при помощи этой функции фильтруется текст комментариев перед их добавлением в базу данных. То есть в базе данных ссылки уже хранятся с добавленным атрибутом (но без обратных слешей между прочим). Согласитесь, что это правильно, так как было бы нецелосообразно фильтровать тексты каждого комментария перед их выводом на страницу. А что если у вас 500 комментариев на одной странице? 😁👽
Отключить автоматическое добавление атрибута rel="nofollow ugc"
можно при помощи функции remove_filter(), вставленной в например ваш файл темы functions.php
:
remove_filter( 'pre_comment_content', 'wp_rel_ugc', 15 );
Источник: misha.blog