Мы создаем сервис, который размещает видео. Пользователи загружают видео на наш веб-сайт, и мы предоставляем встраиваемые коды для воспроизведения на их веб-сайтах.
В настоящее время у нас есть несколько пользователей, использующих Wordpress, поэтому мы решили создать встроенную службу для позволить пользователям легко копировать / вставлять ссылки в свои сообщения.
Мы выполнили руководство и зарегистрировали следующего провайдера в wordpress через wp_oembed_add_provider в функциях .php
wp_oembed_add_provider('https://vectorly.io/*', 'https://vectorly.io/wordpress/embed');
Мы настроили конечную точку службы oEmbed (https://vectorly.io/wordpress/embed?url=....), который возвращает следующий json
{
"version":"1.0",
"type":"video",
"provider_name":"Vectorly",
"provider_url":"https://vectorly.io/",
"width":"600",
"height":"340",
"thumbnail_width":"600",
"thumbnail_height":"340",
"thumbnail_url":"https://s3-us-west-2.amazonaws.com/m.cdpn.io/screenshot-coming-soon-small.png",
"title":"NVP DemoDay - Vectorly",
"html":"<iframe src=\"https://api.vectorly.io/embed/demo/ba37b243-46c4-4f60-9a12-f6885b95c661\" width=\"600\" height=\"340\" frameborder=\"0\" allowfullscreen />"
}
Embedly, похоже, проверить вывод
Копирование и вставка одной из наших ссылок (https://vectorly.io/watch/ba37b243-46c4-4f60-9a12-f6885b95c661) в редактор сообщений Wordpress, похоже, успешно захватывает данные oembed
Но блок редактора встроенного контента не показывает предварительный просмотр видео
Фактически опубликованное сообщение выглядит нормально, хотя
Кажется, что блок предварительного просмотра правильно загружает iframe, но просто устанавливает ширину и высоту как 0 во время предварительного просмотра.
Глядя на других поставщиков oembed, не включенных в белый список, эта проблема, похоже, не возникает, поэтому я думаю, что делаю что-то не так, но я не могу понять, что это такое.
Копаясь в различных файлах Wordpress, я думаю, что другие ссылки oEmbed (даже от третьих сторон, не внесенных в белый список) делают что-то, чтобы инициировать изменение размера предварительного просмотра Iframe в Javascript.
Любое понимание этого будет оценено. В противном случае мы просто откажемся от oEmbed и будем придерживаться ванильных HTML-кодов для встраивания.