Создание нового поставщика видео oEmbed / oEmbed отображается в сообщениях Wordpress, но не в редакторе

Мы создаем сервис, который размещает видео. Пользователи загружают видео на наш веб-сайт, и мы предоставляем встраиваемые коды для воспроизведения на их веб-сайтах.

В настоящее время у нас есть несколько пользователей, использующих 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-кодов для встраивания.


person Sam    schedule 10.08.2019    source источник


Ответы (1)


Если кто-то еще столкнется с этой проблемой в будущем:

Вам необходимо предоставить закрывающие теги iframe при отправке ответов oembed в wordpress.

I.E. Следующее не работает

<iframe src="..." />

Следующее работает

<iframe src="..." ></iframe>

Добавление тега рисунка улучшает результат. См. Исправленный вывод oEmbed с нашего сервера

{  
   "version":"1.0",
   "type":"video",
   "provider_name":"Vectorly",
   "provider_url":"https://vectorly.io/",
   "width":"600",
   "height":"338",
   "thumbnail_width":"600",
   "thumbnail_height":"338",
   "thumbnail_url":"https://s3-us-west-2.amazonaws.com/vv-raw-videos/ba37b243-46c4-4f60-9a12-f6885b95c661.png",
   "title":"NVP DemoDay - Vectorly",
   "html":"<figure><iframe src=\"https://api.vectorly.io/embed/demo/ba37b243-46c4-4f60-9a12-f6885b95c661\"  width=\"600\" height=\"338\" frameborder=\"0\" allowfullscreen  ></iframe></figure>"
}
person Sam    schedule 12.08.2019