Как убрать автогенерацию rel="oreferrer noopener" в WordPress?

Автогенерация атрибутов rel="noopener noreferrer" в WordPress происходит по умолчанию для всех внешних ссылок с использованием функции wp_targeted_link_rel().

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

function remove_targeted_link_rel_attributes( $atts, $context, $args ) {
// Проверяем, является ли ссылка внешней
if ( ! empty( $atts['href'] ) && ! preg_match( '/^#/', $atts['href'] )
&& ! preg_match( '/^' . preg_quote( home_url() ) . '/', $atts['href'] ) ) {
// Удаляем атрибуты rel="noopener noreferrer"
$atts['rel'] = str_replace( array( 'noopener', 'noreferrer' ), '', $atts['rel'] );
}

return $atts;
}
add_filter( 'wp_targeted_link_rel_attributes', 'remove_targeted_link_rel_attributes', 10, 3 );

Этот код добавляет фильтр remove_targeted_link_rel_attributes для функции wp_targeted_link_rel(). Функция принимает набор атрибутов, контекст, а также дополнительные аргументы. Внутри функции мы проверяем, является ли ссылка внешней с помощью регулярных выражений. Затем мы удаляем атрибуты rel="noopener noreferrer", если они есть, из списка атрибутов для конкретной ссылки.

Это решение позволяет полностью убрать автогенерацию атрибутов rel="noopener noreferrer" в WordPress, и оно будет применяться ко всем внешним ссылкам на вашем сайте. Если вы хотите применять это только к определенным ссылкам на вашем сайте, вам потребуется модифицировать код, чтобы он выполнял проверку на основе ваших условий.

Важно отметить, что автогенерация атрибутов rel="noopener noreferrer" рекомендуется для обеспечения безопасности пользователей, так как она помогает предотвратить атаки с использованием уязвимостей в браузерах. Поэтому перед удалением этих атрибутов убедитесь, что вы понимаете последствия и риски безопасности, связанные с этим действием.