Codex

Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

Вставка объектов

Начиная с WordPress 2.9, вставлять на ваш сайт видеоролики, изображения и другое содержимое стало очень просто.

В двух словах

Чтобы вставить (внедрить) объект в запись или страницу — достаточно скопировать его адрес (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 внедряет только объекты с сайтов из белого списка. Это сделано в целях безопасности.

Ладно, так с каких сайтов можно вставлять объекты?

С любого из этих:

Сервис Тип объекта С версии
Animoto Видео WordPress 4.0
Blip Видео WordPress 2.9
CollegeHumor Видео WordPress 4.0
DailyMotion Видео WordPress 2.9
Flickr Видео и изображения WordPress 2.9
FunnyOrDie.com Видео WordPress 3.0
Hulu Видео WordPress 2.9
Imgur Видео WordPress 3.9
Instagram Видео WordPress 3.5
Issuu Документы WordPress 4.0
Meetup.com Разные типы WordPress 3.9
Mixcloud Музыка WordPress 4.0
Photobucket Изображения WordPress 2.9
PollDaddy Опросы и анкеты WordPress 3.0
Rdio Музыка WordPress 3.6
Revision3 Телепередачи WordPress 2.9
Scribd Документы WordPress 2.9
SlideShare Слайды презентаций WordPress 3.5
SmugMug Фотографии WordPress 3.0
SoundCloud Музыка WordPress 3.5
Spotify Музыка WordPress 3.6
TED Видео WordPress 4.0
Twitter Социальные медиа WordPress 3.4
Vimeo Видео WordPress 2.9
YouTube Видео WordPress 2.9
WordPress.tv Видео WordPress 2.9

Замечания

  • Twitter — в старых версиях WordPress могут быть проблемы со вставкой по протоколу https, для исправления просто уберите из https букву «s».
  • YouTube — вставлять можно только публичные видео и доступные по ссылке, личные видео вставлены не будут.

Как добавить поддержку других сайтов?

Добавление дополнительного сайта зависит от того, поддерживает ли он протокол oEmbed.

Добавление сайта с поддержкой oEmbed

Если сайт поддерживает oEmbed, воспользуйтесь функцией wp_oembed_add_provider(), чтобы добавить сайт и формат URL в белый список.

Добавление сайта без поддержки oEmbed

Нужно зарегистрировать обработчик с помощью функции wp_embed_register_handler() и написать функцию, которая создаёт HTML-код.

Как насчёт автообнаружения oEmbed?

В реализации oEmbed в WordPress автообнаружение отключено. По умолчанию внедрять объекты можно только с сайтов из белого списка. Это сделано, чтобы предотвратить случайное внедрение объектов с вредоносных сайтов.

Однако, если вы уверены, что сможете этого избежать, можно разрешить пользователям, которые обладают возможностью unfiltered_html (администраторам и редакторам), вставлять объекты с сайтов, имеющих теги oEmbed внутри <head>. Достаточно установить плагин Enable oEmbed Discovery.

Внешние ресурсы

Список изменений

  • 3.4
    • Добавлен сайт Twitter.
  • 3.0
    • Добавлен сайт SmugMug.
    • Добавлен сайт FunnyOrDie.com.
  • 2.9
    • Реализована поддержка вставки объектов.
Эта статья помечена как нуждающаяся в редактировании. Вы можете помочь проекту, отредактировав её.