Отключение автоматического добавления атрибута noreferrer
для внешних ссылок при их создании, а также при сохранении записей и страниц на сайте WordPress.
WordPress и новая вкладка
После обновления WordPress до версии 5.1 при создании новых внешних ссылок, открывающихся в новой вкладке (с тегом target="_blank"
), автоматически добавляется тег rel="noopener noreferrer"
. Такое уже было раньше, начиная, ориентировочно, с выпуска 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»
без кавычек, но с пробелом впереди. - Поле «Заменить на» оставьте пустым.
- Нажмите кнопку «Вперёд».
- Прокрутите найденный текст с атрибутом
noreferrer
вверх, после чего, снизу под текстом, нажмите кнопку «Замена».
партнерская ссылка не содержит идентифицирующего маркера — что за атрибут?
Антон, в этом предложении «идентифицирующий маркер» обозначает то же, что и «партнерский маркер».
Всё сделал как описано, а атрибут rel=noopener так никуда и не делся, помогите удалить или отключить этот атрибут пожалуйста!
Дмитрий, а вы хотите удалить
noopener
илиnoreferrer
? Если все-такиnoreferrer
, то я поправил текст в параграфе «Удаление атрибута», так как при тестировании я удалил с помощью SQL-запроса атрибутnoreferrer
с пробелом впереди не только из ссылок, но и из текста этой статьи.Евгений Я хочу удалить атрибут rel=»noopener»
Используйте «Самый простой способ» из статьи WordPress. Замена текста в базе данных.
rel="noopener"
с одним пробелом впереди.Если у вас есть ссылки с атрибутом
noopener
в комментариях, выберите таблицу «wp_comments», а столбец — «comment_content» и далее по пунктам 3-5.А можно так сделать чисто для определённых ссылок, а не для всех. Я знаю что этот атрибут для безопасности, а таких партнёрских ссылок у меня не много, сделать под конкретные ссылки, так можно?
Дмитрий, как удалить
rel="noopener"
по условию программно, я не знаю. Вручную тоже не получится, так как WordPress при сохранении статьи снова его добавит. Можно временно отключить автоматическое добавление этого атрибута (не забудьте сохранить резервную копию сайта):После ручного редактирования и сохранения ссылок удалите этот код или закомментируйте, если будете использовать его в дальнейшем. В новые ссылки атрибут
rel="noopener"
снова начнет добавляться, а в старые — только при пересохранении статей, где они размещены.Протестировано в WordPress 5.7.2 (на данный момент — последняя версия).
Огромное спасибо! Удалил noreferrer из всех партнерских ссылок одним махом. Все-таки для некоторых партнерок этот атрибут вредит. Например, для обменника валют BestChange. У меня было много неучтенных переходов по реф. ссылке — из-за этого я недополучал деньги, хоть и люди от меня пришли. В техподдержке BestChange мне написали, что это из-за noreferrer. Поэтому начал гуглить и нашел вашу статью. Теперь исправил — посмотрим на результаты.
Обсуждение закрыто.