WordPress. Отключение атрибута noreferrer

Отключение автоматического добавления атрибута 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 вашей темы, лучше дочерней:

Тестирование показало работоспособность кода по отключению автоматической генерации атрибута noreferrer как с редактором Gutenberg, так и с плагином «Классический редактор».

Не отключайте атрибут noreferrer без необходимости. Если разработчики такую функцию добавили, наверное, она все-таки нужна и способна сделать ваш сайт на WordPress безопасней.

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

Удаление атрибута

Если вам необходимо удалить уже записанный атрибут noreferrer из всех ссылок, воспользуйтесь SQL-запросом к базе данных в phpMyAdmin с помощью инструмента для поиска и замены текста. Подробнее в статье: WordPress. Замена текста в базе данных.

Поиск и замена текста в приложении phpMyAdmin

  • В поле «Искать» вставьте « noreferrer» без кавычек, но с пробелом впереди.
  • Поле «Заменить на» оставьте пустым.
  • Нажмите кнопку «Вперёд».
  • Прокрутите найденный текст с атрибутом noreferrer вверх, после чего, снизу под текстом, нажмите кнопку «Замена».

Наши сайты размещены на виртуальном хостинге от провайдеров Beget и Timeweb.

8 комментариев для “WordPress. Отключение атрибута noreferrer”

  1. партнерская ссылка не содержит идентифицирующего маркера – что за атрибут?

    1. Евгений (автор статьи)

      Антон, в этом предложении «идентифицирующий маркер» обозначает то же, что и «партнерский маркер».

  2. Дмитрий

    Всё сделал как описано, а атрибут rel=noopener так никуда и не делся, помогите удалить или отключить этот атрибут пожалуйста!

    1. Евгений

      Дмитрий, а вы хотите удалить noopener или noreferrer? Если все-таки noreferrer, то я поправил текст в параграфе «Удаление атрибута», так как при тестировании я удалил с помощью SQL-запроса атрибут noreferrer с пробелом впереди не только из ссылок, но и из текста этой статьи.

        1. Евгений

          Используйте «Самый простой способ» из статьи WordPress. Замена текста в базе данных.

          1. Сделайте резервную копию базы данных (я, обычно, делаю копию всего сайта, включая файлы).
          2. В phpMyAdmin выберите таблицу «wp_posts», в окне «Поиск» >> «Найти и заменить» выберите столбец «post_content».
          3. В поле «Искать» вставьте rel="noopener" с одним пробелом впереди.
          4. Поле «Заменить на» оставьте пустым.
          5. Нажмите кнопку «Вперёд».

          Если у вас есть ссылки с атрибутом noopener в комментариях, выберите таблицу «wp_comments», а столбец – «comment_content» и далее по пунктам 3-5.

      1. Дмитрий

        А можно так сделать чисто для определённых ссылок, а не для всех. Я знаю что этот атрибут для безопасности, а таких партнёрских ссылок у меня не много, сделать под конкретные ссылки, так можно?

        1. Евгений

          Дмитрий, как удалить rel="noopener" по условию программно, я не знаю. Вручную тоже не получится, так как WordPress при сохранении статьи снова его добавит. Можно временно отключить автоматическое добавление этого атрибута (не забудьте сохранить резервную копию сайта):

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

          Протестировано в WordPress 5.7.2 (на данный момент – последняя версия).

Добавить комментарий

Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора.