wp_add_crossorigin_attributes()
Добавляет crossorigin="anonymous" к HTML-тегам в переданном HTML коде.
Атрибут crossorigin="anonymous" указывает браузеру загрузить внешний ресурс через CORS без передачи учётных данных: cookies, HTTP-аутентификации и клиентских сертификатов. Это позволяет безопасно использовать ресурс с другого домена.
Аттрибут будет добавлен толкьо к тегам, которые загружают ресурсы с другого источника. Если внешние ресурсы не найдены, HTML остаётся без изменений.
Обрабатывает следующие теги и атрибуты:
<audio src><link href><script src><video src>и<video poster><source src>внутри<audio>или<video>
Для внешнего ресурса из <source> атрибут добавляется к родительскому <audio> или <video>. Теги <img> не обрабатываются.
Если тег уже содержит атрибут crossorigin, функция не изменяет его.
Внутренними считаются URL, которые начинаются с результата site_url() или символа /.
Функция не разбирает URL на протокол, домен и порт. Поэтому:
- относительный URL без начального слеша, например
assets/app.js, будет считаться внешним. - а URL вида
//cdn.example.com/app.js, наоборот, будет внутренним.
WordPress использует функцию при подготовке HTML редактора блоков с межсайтовой изоляцией. Это позволяет загружать внешние ресурсы в режиме CORS, необходимом для клиентской обработки изображений через SharedArrayBuffer.
Хуков нет.
Возвращает
Строку.
строку— обработанный HTML.
Использование
wp_add_crossorigin_attributes( $html ): string;
- $html(string) (обязательный)
- HTML, в котором нужно добавить атрибуты
crossorigin.
Примеры
#1 Добавление атрибутов внешним ресурсам
В оба тега будет добавлен атрибут crossorigin="anonymous".
$html = ' <link rel="stylesheet" href="https://cdn.example.com/style.css"> <script src="https://cdn.example.com/app.js"></script> <script src="/foo/bar.js"></script> <script src="foo/bar.js"></script> '; echo wp_add_crossorigin_attributes( $html );
Получим:
<link crossorigin="anonymous" rel="stylesheet" href="https://cdn.example.com/style.css"> <script crossorigin="anonymous" src="https://cdn.example.com/app.js"></script> <script src="/foo/bar.js"></script> <script crossorigin="anonymous" src="foo/bar.js"></script>
#2 Обработка элемента source
Атрибут crossorigin="anonymous" будет добавлен к тегу <video>, а не к вложенному <source>.
$html = ' <video controls> <source src="https://cdn.example.com/video.mp4" type="video/mp4"> </video> '; echo wp_add_crossorigin_attributes( $html );
Список изменений
| С версии 7.1.0 | Введена. |