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 (на данный момент — последняя версия).

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

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