Встраивать видео, изображения, твиты, аудио и другое содержимое на свой сайт WordPress очень просто.
Использование
Чтобы встроить видео или другой объект в запись или страницу, поместите его URL-адрес в область содержимого. Убедитесь, что URL-адрес находится в отдельной строке и не содержит гиперссылок (доступен для клика при просмотре сообщения).
Например:
Посмотрите это классное видео:
http://www.youtube.com/watch?v=dQw4w9WgXcQ
Это было классное видео.
WordPress автоматически превратит URL-адрес во встроенный YouTube и предоставит предварительный просмотр в визуальном редакторе.
Другой вариант — заключить URL-адрес в “embed
” шорткод.
// ПРИМЕЧАНИЕ. Удалите пробел между '[' и 'embed'.
[ embed width="123" height="456"]http://www.youtube.com/watch?v=dQw4w9WgXcQ[/embed]
Если WordPress не сможет встроить URL-адрес, запись будет содержать гиперссылку на URL-адрес.
oEmbed
Функция простого встраивания основана на oEmbed протоколе для сайта A (например, вашего блога), который запрашивает у сайта B (например, YouTube) HTML-код, необходимый для встраивания содержимого с сайта B.
oEmbed был разработан, чтобы избежать необходимости копировать и вставлять HTML с сайта, на котором размещен медиафайл, который вы хотите встроить. Он поддерживает видео, изображения, текст и многое другое.
Работает ли это с любым URL?
Нет, не по умолчанию. WordPress будет встраивать только URL-адреса, соответствующие внутреннему белому списку. Это сделано в целях безопасности.
Хорошо, с каких сайтов я могу встраивать?
Это работает с этими сервисами:
Примечание
- Twitter — в старых версиях WordPress есть проблемы с встраиванием https, просто удалите s из https, чтобы исправить.
- YouTube — только общедоступные и «не включенные в список» видео и плейлисты — «частные» видео не встраиваются.
- Tumblr — распознаются только сообщения (name.tumblr.com/post/etc), а не отдельные изображения (name.tumblr.com/image)
Как я могу добавить или изменить поддержку веб-сайтов?
Добавление поддержки для дополнительного веб-сайта зависит от того, поддерживает ли сайт oEmbed.
Добавление поддержки для сайта с поддержкой oEmbed
Если сайт поддерживает oEmbed, вам нужно вызвать wp_oembed_add_provider(), чтобы добавить сайт и формат URL во внутренний белый список.
Добавление поддержки для сайта без встроенного oEmbed
Вам нужно будет зарегистрировать обработчик с помощью wp_embed_register_handler() и предоставить функцию обратного вызова, которая генерирует HTML.
Удаление поддержки для сайта с поддержкой oEmbed
Если вы хотите удалить поставщика с поддержкой oEmbed, вам нужно вызвать wp_oembed_remove_provider.
А как насчет oEmbed Discovery?
Начиная с версии 4.4, WordPress поддерживает обнаружение oEmbed, но имеет серьезные ограничения на то, какой тип содержимого может быть встроен через сайты, не внесенные в белый список.
В частности, содержимое HTML и видео фильтруется, чтобы разрешать только ссылки, цитаты и фреймы, и они дополнительно фильтруются для предотвращения вставки вредоносного содержимого. Затем HTML-код модифицируется, чтобы он был изолирован, а также на него накладываются дополнительные ограничения безопасности.
Однако, если вы чувствуете, что достаточно уверены, чтобы не требовать этого уровня безопасности, вы можете предоставить пользователям unfiltered_html
(администраторам и редакторам) возможность встраивать данные с веб-сайтов, у которых в <head>
есть теги обнаружения oEmbed.
Содержимое обнаруженное oEmbed для типов «ссылка» и «фото» не так сильно фильтруется, однако оно должным образом экранируется в целях безопасности и предотвращения отображения любого вредоносного содержимого на сайте.
Внешние ресурсы
- oEmbed.com – Официальный сайт oEmbed с техническими подробностями спецификации
- WordPress oEmbed Providers Registration Generator – от GenerateWP.com
- Easy Embeds For WordPress 2.9 – от Alex Mills (Viper007Bond)
- How to Set oEmbed Max Width in WordPress 3.5 with $content_width? – от wpbeginner.com