Я интегрировал публикации WordPress в Discourse. В одной из публикаций я добавил видео Wistia. В публикациях WordPress всё работает нормально, но в Discourse отображается только изображение. Видео не воспроизводится, вместо него загружается картинка.
Может ли кто-нибудь подсказать, как это исправить?
Спасибо за ваш вопрос. Изучая эту проблему, я столкнулся с ошибкой в том, как плагин Discourse для WordPress обрабатывает встраивание видео с YouTube и Vimeo. Исправление этой проблемы может также решить вопрос с отображением видео Wistia для тем, опубликованных из WordPress.
Я предполагаю, что вы публикуете посты из WordPress в Discourse с помощью плагина WP Discourse и что включена опция «Использовать полное содержание поста» (Use Full Post Content), которая находится на вкладке настроек публикации WP Discourse. Также я предполагаю, что вы используете редактор блоков WordPress, а не классический редактор. Дайте знать, если это не так.
Если вы публикуете посты из WordPress в Discourse именно таким образом, как вы добавляете видео Wistia в посты WordPress? Вы используете ссылку «поделиться» (share) или код встраивания видео? Я думаю, что это будет работать, если используется ссылка «поделиться», но не сработает, если используется код встраивания.
Для справки (для себя) проблема с видео YouTube и Vimeo описана здесь:
Когда этот код был добавлен в плагин, блоки видео в WordPress назывались в зависимости от провайдера видео. Например, core-embed/youtube. Сейчас WordPress, похоже, использует имя core/embed для блоков видео и указывает провайдера через атрибут providerNameSlug. Например:
Я пока внес это изменение только на своём локальном сервере разработки. Я ещё раз изучу этот вопрос и посмотрю, можно ли добавить это исправление в код плагина WP Discourse.
Привет, @simon. Спасибо за ответ…
Да… Я публикую посты из WordPress в Discourse с помощью плагина WP Discourse. Но я не включил опцию «Использовать полный контент поста», так как в редакторе WordPress использую шорткоды.
В данный момент я использую классический редактор WordPress.
Для добавления видео я вставляю код встраивания Wistia прямо в редактор WordPress.
Я пробовал решение, которое вы упомянули, но никаких изменений не произошло…
Привет, @angus.
Я публикую пост из WordPress с помощью плагина WP Discourse.
Встраиваемые коды Wistia не отображаются на форуме Discourse. Пожалуйста, посмотрите эту ссылку..
Это более сложная проблема для решения. В настоящее время все iframes удаляются Discourse при отображении поста на Discourse после нажатия пользователем кнопки «Показать полный пост». Это означает, что видео из любого источника не будут отображаться в теме. Было бы здорово, если бы это можно было заставить работать. Я знаю, что это запрашивалось несколько раз.
Причина этого в том, что кнопка «Показать полный пост» для встроенного поста в Discourse работает путём «повторного обхода» встроенной веб-страницы при клике пользователя. HTML, который вы видите после нажатия этой кнопки, не отправляется плагином WP Discourse при публикации поста — это результат свежего обхода соответствующей страницы.
Веб-сканирование всегда немного непредсказуемо из-за огромного разнообразия возможных структур HTML (например, существует множество способов отображения изображений в HTML). В связи с этим данная функция рассматривается как возможная область для улучшения. Подробнее см.
Таким образом, на данный момент простого решения нет. Вы можете попытаться заблокировать или разрешить HTML-селекторы, которые использует сканер, однако это сложная задача, и добиться желаемого результата непросто. Подробнее см.
Более простой способ решения проблемы — либо скрыть кнопку «Показать полный пост», либо изменить её так, чтобы она вела обратно к оригинальному посту в WordPress, используя пользовательский компонент темы. Когда сайт имеет относительно сложную структуру HTML поста с изображениями, как в вашем случае, я обычно рекомендую именно эти варианты.