Внедрение объектов в запись WordPress без плагинов
В двух словах
Чтобы вставить (внедрить) объект в запись или страницу — достаточно скопировать его адрес (URL) в область редактирования. Убедитесь, что адрес находится на отдельной строке и не заключён в тег ссылки.
Например:
Посмотрите это классное видео:http://www.youtube.com/watch?v=nTDNLUzjkpg Это было классное видео.
При просмотре записи WordPress автоматически покажет видео с YouTube. Начиная с версии 3.5, внедрение объектов по умолчанию включено, и в панели управления нет настройки, чтобы его отключить. До версии 3.5 на странице «Панель управления» > «Параметры» > «Медиафайлы» была галочка «Автоматическое внедрение».
Кроме того, можно заключить адрес в шорткод [embed]
. Эффект будет тот же самый, однако в этом случае не имеет значения, находится ли адрес на отдельной строке и включено ли автоматическое внедрение. Можно также задать максимальную (но не фиксированную) ширину и высоту, например: [embed width="123" height="456"]...[/embed]
Если WordPress не сможет внедрить объект по указанному адресу, будет выведена ссылка на этот адрес.
oEmbed
Функция лёгкого внедрения основана на протоколе oEmbed, который позволяет сайту A (например, вашему блогу) запросить у сайта Б (например, YouTube) HTML-код, необходимый для внедрения объекта (например, видеоролика) с сайта Б.
Протокол oEmbed был создан, чтобы избежать копирования и вставки HTML-кода с сайта, на котором находится интересующий вас объект. Он поддерживает видео, изображения, текст и т.д.
Можно использовать любой адрес?
По умолчанию нет. WordPress внедряет только объекты с сайтов из белого списка. Это сделано в целях безопасности.
Ладно, так с каких сайтов можно вставлять объекты?
С любого из этих:
- YouTube
- Vimeo
- DailyMotion
- blip.tv
- Flickr (как видео, так и изображения)
- Viddler
- Hulu
- Qik
- Revision3
- Scribd
- Photobucket
- PollDaddy
- Google Video
- WordPress.tv (на текущий момент только видео типа VideoPress)
- SmugMug (WordPress 3.0+)
- FunnyOrDie.com (WordPress 3.0+)
- Twitter (WordPress 3.4+)
Как добавить поддержку других сайтов?
Добавление дополнительного сайта зависит от того, поддерживает ли он протокол oEmbed.
Добавление сайта с поддержкой oEmbed
Если сайт поддерживает oEmbed, воспользуйтесь функцией wp_oembed_add_provider(), чтобы добавить сайт и формат URL в белый список.
Добавление сайта без поддержки oEmbed
Нужно зарегистрировать обработчик с помощью функции wp_embed_register_handler() и написать функцию, которая создаёт HTML-код
Как насчёт автообнаружения oEmbed?
В реализации oEmbed в WordPress автообнаружение отключено. По умолчанию внедрять объекты можно только с сайтов из белого списка. Это сделано, чтобы предотвратить случайное внедрение объектов с вредоносных сайтов.
Однако, если вы уверены, что сможете этого избежать, можно разрешить пользователям, которые обладают возможностью unfiltered_html
(администраторам и редакторам), вставлять объекты с сайтов, имеющих теги oEmbed внутри . Достаточно установить плагин Enable oEmbed Discovery.