Отключение автоматического добавления атрибута noreferrer
для внешних ссылок при их создании, а также при сохранении записей и страниц на сайте WordPress.
WordPress и новая вкладка
После обновления WordPress до версии 5.1 при создании новых внешних ссылок, открывающихся в новой вкладке (с тегом target="_blank"
), автоматически добавляется тег rel="noopener"
. Такое уже было раньше, начиная, ориентировочно, с выпуска WordPress 4.7.4, но позднее был оставлен один автоматически генерируемый атрибут – noopener
.
Если вручную удалить из внешних ссылок атрибут noreferrer
, при сохранении черновика или обновлении страницы он добавляется вновь. Для внутренних ссылок, открывающихся в новой вкладке, генерируется только атрибут noopener
.
Атрибуты noopener
и noreferrer
нужны для повышения безопасности сайта WordPress при открытии ссылок в новой вкладке.
Однако, применение атрибута noreferrer
может отрицательно повлиять на партнерские ссылки. Если сомневаетесь в их полной работоспособности, попросите сотрудника службы поддержки партнерской программы проверить ваши ссылки.
На ссылки, передающие партнерский маркер в явном или зашифрованном виде, наличие атрибута noreferrer
влиять не должно. По крайней мере у меня такие ссылки работают.
Отключение атрибута
Вы можете отключить автоматическое добавление атрибута noreferrer
для внешних ссылок. Для этого поместите следующий код в файл functions.php
вашей темы, лучше дочерней:
1 2 3 4 |
add_filter( 'wp_targeted_link_rel', 'my_function_remove_noreferrer' ); function my_function_remove_noreferrer( $rel_values ) { return preg_replace( '/noreferrer\s*/i', '', $rel_values ); } |
Тестирование показало работоспособность кода по отключению автоматической генерации атрибута noreferrer
как с редактором Gutenberg, так и с плагином «Классический редактор».
Не отключайте атрибут noreferrer
без необходимости. Если разработчики такую функцию добавили, наверное, она все-таки нужна и способна сделать ваш сайт на WordPress безопасней.
Если ваша партнерская ссылка не содержит идентифицирующего маркера, открывайте ее в текущем окне.
Удаление атрибута
Если вам необходимо удалить уже записанный атрибут noreferrer
из всех ссылок, воспользуйтесь SQL-запросом к базе данных в phpMyAdmin с помощью инструмента для поиска и замены текста. Подробнее в статье: WordPress. Замена текста в базе данных.
- В поле «Искать» вставьте
«»
без кавычек, но с пробелом впереди. - Поле «Заменить на» оставьте пустым.
- Нажмите кнопку «Вперёд».
- Прокрутите найденный текст с атрибутом
noreferrer
вверх, после чего, снизу под текстом, нажмите кнопку «Замена».
партнерская ссылка не содержит идентифицирующего маркера – что за атрибут?
Антон, в этом предложении «идентифицирующий маркер» обозначает то же, что и «партнерский маркер».