Автогенерация атрибутов rel="noopener noreferrer" в WordPress происходит по умолчанию для всех внешних ссылок с использованием функции wptargetedlink_rel().
Чтобы убрать автогенерацию данных атрибутов, можно использовать фильтр wptargetedlinkrelattributes, который позволяет изменять список атрибутов для конкретных ссылок. Предлагается добавить следующий код в файл functions.php вашей темы:
function removetargetedlinkrelattributes( $atts, $context, $args ) {
// Проверяем, является ли ссылка внешней
if ( ! empty( $atts['href'] ) && ! preg_match( '/^#/', $atts['href'] )
&& ! pregmatch( '/^' . pregquote( home_url() ) . '/', $atts['href'] ) ) {
// Удаляем атрибуты rel="noopener noreferrer"
$atts['rel'] = str_replace( array( 'noopener', 'noreferrer' ), '', $atts['rel'] );
}
return $atts;
}
addfilter( 'wptargetedlinkrelattributes', 'removetargetedlinkrel_attributes', 10, 3 );
Этот код добавляет фильтр removetargetedlinkrelattributes для функции wptargetedlink_rel(). Функция принимает набор атрибутов, контекст, а также дополнительные аргументы. Внутри функции мы проверяем, является ли ссылка внешней с помощью регулярных выражений. Затем мы удаляем атрибуты rel="noopener noreferrer", если они есть, из списка атрибутов для конкретной ссылки.
Это решение позволяет полностью убрать автогенерацию атрибутов rel="noopener noreferrer" в WordPress, и оно будет применяться ко всем внешним ссылкам на вашем сайте. Если вы хотите применять это только к определенным ссылкам на вашем сайте, вам потребуется модифицировать код, чтобы он выполнял проверку на основе ваших условий.
Важно отметить, что автогенерация атрибутов rel="noopener noreferrer" рекомендуется для обеспечения безопасности пользователей, так как она помогает предотвратить атаки с использованием уязвимостей в браузерах. Поэтому перед удалением этих атрибутов убедитесь, что вы понимаете последствия и риски безопасности, связанные с этим действием.