Ваш путь: Главная » Бардачок html php css » текущая страница
возможно заказать разработку или сопровождение, услуги вашего сайта/блога


обновлено 2025-11-08 в теме: Бардачок html php css
Запросто с WordPress создание и продвижение сайтов ATs media

К ссылкам в комментариях добавляется rel=«nofollow ugc»

Те, которые как-то обращают внимание на функционал комментирования WordPress, наверняка задавались вопросом, когда обнаруживали в комментариях, если имеется ссылка на сторонний ресурс, что к ссылке добавляется атрибутика rel=«nofollow ugc». Также, вероятно, некоторые и админов задаются вопросом, как убрать либо изменить данную атрибутику?..

…ну, например, не во всех комментариях, а в каком-то конкретном?..

 

За этот функционал отвечает фильтрация текста функцией wp_rel_ugc( $text ). Однако сегодня потолкуем поподробнее относительно её работы по форме комментирования… и том, как отключать сие автоматическое добавления атрибутов в комментариях, — это ж иногда требуется…

 


 

 

 

 

Функция comment_form() — выводит форму комментирования (функционал)…

или можно почитать здесь.

выводим комменты там, где нам требуется

 

 

Сама функция: wp_rel_ugc( $text )

 

 

Функция wp_rel_ugc( $text) была добавлена с версии ядра WordPress 5.3 — если используется в обработке некоего текста — фильтрует его, к примеру, при добавлении комментария к посту (сегодня говорим же о форме комментирования!).

 

 

расположение и отработка функции wp_rel_ugc( $text )

 

 

В ядре WP (на данный момент во всяком случае) расположена в wp-includes/formatting.php Почитать можно и в Кодексе WordPress…

 

 

/**
* Adds `rel="nofollow ugc"` string to all HTML A elements in content.
*
* @since 5.3.0
*
* @param string $text Content that may contain HTML A elements.
* @return string Converted content.
*/
function wp_rel_ugc( $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 ugc' );
},
$text
);
return wp_slash( $text );
}

 

 

Что интересно;

 

  • текст фильтруется (т.е. добавляется атрибут к html ссылке) перед тем, как сам текст комментария будет добавлен в базу данных (именно в Базе Данных и хранятся комментарии, и уже с добавленным атрибутом rel=«nofollow ugc», но без экранных слешей «\», что весьма логично!).
  • все прежние комментарии по сайту (если он построен на версиях до 5.3) изменены не будут до момента их редактирования!

 

 

Итак: в нашем случае функция организует автоматическое добавление атрибутов nofollow ugc в ссылки в комментариях.

 

 

значение «ugc» (аб. англ. User Generated Content) — директива по организации пользовательских ссылок сайта: например, ссылок в комментариях.

если вы доверяете ресурсу по ссылке, то применение атрибута не обязательно.

 

 

$text — (строка) любой текст, который содержит или не содержит ссылки.

 

работает примерно так: echo stripslashes( wp_rel_ugc( $text ) );

 

stripslashes() используют, если в обработке текстовых данных (фильтрации) не требуется экранирование (обратные слеши)…

 

 

примечание:

 

  • внутренние ссылки по сайту (домен сайта) — атрибутика rel не добавляется;
  • в остальных ссылках: если html линка rel и какое-то значение уже имеет — все это останется не тронутым;
  • если в атрибуте имеется только одно из значений либо nofollow либо ugc — то будет добавлено недостающее (скорее всего порядок значений значений может отличаться от примера в статье).

 

 

Если требуется отключить функционал автоматического добавления rel="nofollow ugc" (например, в текстах комментариев) следует воспользоваться фильтром remove_filter(),  где-то в файле functions.php

 

 

как отключить функционал добавления rel=«nofollow ugc» в ядре WP 5.3 и выше

 

 

Если вы получили комментарий и перешли к его модерации в адмике сайта, увидите примерно следующее:

 

 

функция rel=nofollow ugc

 

 

Если банально стереть атрибуты — и обновить комментарий (т.е. перезаписать в Базе Данных), то эти атрибуты будут вновь к ссылке добавлены!

 

Чтобы добавить к ссылке какие-то свои атрибуты, либо вовсе убрать их, следует воспользоваться фильтром (этот фильтр только по комментариям)!

 

 

remove_filter( 'pre_comment_content', 'wp_rel_ugc', 15 ); // 15 (приоритет); pre_comment_content - обработка текстовых данных комментариев

 

 

  • pre_comment_content — фильтр php по WordPress: полезен для разработчиков потому что позволяет изменять содержание (html — текст) комментариев перед тем, как данные будут сохранены в базе данных.

 

 

вывод

 

Самые простые варианты:

 

Если требуется оставить ссылку со своими атрибутами, или вовсе без них (открытую ссылку), то следует воспользоваться фильтром в момент всякого обновления (редактирования) комментария — то есть при сохранении текста в Б.Д!! это может быть несколько неудобно… т.к. придется включать фильтр при любом случае редактирования данных какого-то конкретного комментария, если уникальная атрибутика требуется только в нем.

 

Или включить фильтр на постоянной основе, чтобы ничего не добавлялось к ссылкам. А уже по требованию снабжать линк необходимым, что называется вручную…

 

 

Если вам требуется организовать управление атрибутикой ссылок более утонченно (в комментариях, или где-то как-то), пишите, будем решать вопрос…

 

 



Михаил ATs - владелец блога запросто с Вордпресс - в сети нтернет давным-давно...

...веб разработчик студии ATs media: помогу в создании, раскрутке, развитии и целенаправленном сопровождении твоего ресурса в сети... - заказы, вопросы... разработка...




мы ВКонтакте прыгайте к нам...
Нажатия на кнопочки определяют Ваше высокое гражданское сознание

рекомендовано по запросу лично для вас:

Поделитесь соображениями: Ваши мысли очень важны!

Внимание! Обязательные поля помечены *

  отныне доступен плагин: ats privacy policy ©