15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать
23.10.2024
3 +1

Как встроить видео Facebook в записи и страницы WordPress

Встраивание видео с Facebook в запись или страницу WordPress означает вставку живого воспроизводимого видеоплеера непосредственно в контент с помощью oEmbed-запроса на основе URL или фрагмента iframe — без загрузки файлов. WordPress обрабатывает это нативно через встроенный список oEmbed-провайдеров, который включает Facebook, то есть необработанного URL видео, вставленного в редактор, достаточно для отображения полноценного плеера на фронтенде.

Это руководство подробно охватывает все доступные методы: блочный редактор Gutenberg, Classic Editor, нативный код встраивания Facebook и сторонние плагины. В нём также рассматриваются изменения аутентификации, введённые Facebook в 2018 и 2023 годах, которые нарушают простую вставку URL для многих пользователей — критическая деталь, которую большинство руководств полностью упускают.

Почему встраивание видео с Facebook сложнее, чем кажется

Facebook упразднил анонимный oEmbed-эндпоинт в октябре 2020 года. С тех пор любой oEmbed-запрос к graph.facebook.com/oembed_video требует действительного Facebook App ID и зарегистрированного домена. WordPress по-прежнему указывает Facebook как поддерживаемого oEmbed-провайдера, но без настроенного App ID встраивание молча завершается неудачей и отображает только заглушку или необработанный URL.

Это наиболее распространённая причина, по которой разработчики WordPress обнаруживают, что вставка URL видео с Facebook «просто не работает» на рабочих сайтах, хотя в некоторых локальных или кэшированных средах это работает.

Понимание этого ограничения определяет, какой метод следует использовать.

Метод 1: Блочный редактор Gutenberg с блоком встраивания Facebook

Блочный редактор Gutenberg предоставляет специальный блок Embed с вариантом для Facebook. Это рекомендуемый путь для большинства установок WordPress версии 5.0 и выше.

Шаг 1: Скопируйте правильный URL видео с Facebook

Не все URL видео с Facebook равнозначны. Используйте канонический URL для публикации, а не URL из адресной строки браузера при просмотре видео в полноэкранном режиме.

  1. Перейдите к видео на Facebook в браузере.
  2. Нажмите меню с тремя точками (...) в правом верхнем углу публикации.
  3. Выберите Копировать ссылку.

Полученный URL должен соответствовать одному из следующих форматов:

  • https://www.facebook.com/username/videos/1234567890/
  • https://www.facebook.com/watch/?v=1234567890
  • https://fb.watch/xxxxxxxxxx/

Избегайте использования URL, содержащих /reel/, если вы намерены встроить стандартное видео — Reels используют другой эндпоинт и могут некорректно разрешаться через стандартный oEmbed-путь.

Шаг 2: Откройте запись или страницу в блочном редакторе

В панели управления WordPress перейдите в раздел Записи или Страницы и откройте нужный элемент контента. Нажмите значок +, чтобы добавить новый блок в нужном месте.

Шаг 3: Вставьте блок встраивания Facebook

Введите Facebook в поле поиска блоков или перейдите в раздел Встраивания на панели блоков. Выберите блок Facebook. Появится поле для ввода URL.

Шаг 4: Вставьте URL видео и встройте его

Вставьте скопированный URL в поле ввода и нажмите Enter или кнопку Встроить. WordPress отправляет oEmbed-запрос к API Facebook. Если настроен действительный App ID (см. раздел об App ID ниже), видеоплеер немедленно отображается в предварительном просмотре редактора.

Если вы видите сообщение *«Извините, этот контент не удалось встроить»*, проблема почти наверняка связана с отсутствующим App ID, а не с форматом URL.

Шаг 5: Опубликуйте или обновите

Нажмите Опубликовать или Обновить. Встроенный плеер теперь доступен на фронтенде.

Метод 2: Classic Editor (URL на отдельной строке)

Для сайтов, использующих плагин Classic Editor или версии WordPress до 5.0, механизм oEmbed работает через другой путь кода, но опирается на тот же базовый API.

Шаги

  1. Скопируйте URL видео с Facebook, используя тот же процесс, описанный выше.
  2. Откройте запись или страницу в Classic Editor.
  3. Переключитесь на вкладку Визуальный (не Текст/HTML).
  4. Вставьте URL на отдельной строке, без окружающего текста, разметки гиперссылок и завершающих символов.
  5. Нажмите Опубликовать или Предпросмотр.

Класс WP_oEmbed WordPress перехватывает URL во время обработки фильтра the_content и заменяет его разметкой iframe, возвращённой oEmbed-эндпоинтом Facebook.

Критическая ошибка: Если вы вставите URL внутри абзаца с другим текстом, WordPress не запустит разрешение oEmbed. URL должен занимать отдельный узел абзаца в содержимом записи.

Метод 3: Нативный код встраивания Facebook (iframe)

Этот метод полностью обходит систему oEmbed WordPress и работает независимо от настройки App ID. Это наиболее надёжный вариант для публичных видео.

Как получить код встраивания

  1. Перейдите к видео на Facebook.
  2. Нажмите меню с тремя точками (...) и выберите Встроить.
  3. Facebook генерирует фрагмент <iframe>. Скопируйте полный фрагмент.

Типичный фрагмент кода встраивания видео с Facebook выглядит следующим образом:

<iframe
  src="https://www.facebook.com/plugins/video.php?height=314&href=https%3A%2F%2Fwww.facebook.com%2Fusername%2Fvideos%2F1234567890%2F&show_text=false&width=560&t=0"
  width="560"
  height="314"
 
  scrolling="no"
  frameborder="0"
  allowfullscreen="true"
  allow="autoplay; clipboard-write; encrypted-media; picture-in-picture; web-share">
</iframe>

Вставка iframe в WordPress

В Gutenberg: Добавьте блок Произвольный HTML и вставьте код iframe напрямую.

В Classic Editor: Переключитесь на вкладку Текст (режим HTML) и вставьте iframe в нужном месте. Не вставляйте его на вкладке «Визуальный» — WordPress удалит или экранирует HTML.

Адаптация iframe под мобильные устройства

Стандартный iframe Facebook использует фиксированные пиксельные размеры, что нарушает отображение на мобильных экранах. Оберните его в адаптивный контейнер:

<div>
  <iframe
    src="https://www.facebook.com/plugins/video.php?href=https%3A%2F%2Fwww.facebook.com%2Fusername%2Fvideos%2F1234567890%2F&show_text=false&width=560"
   
    scrolling="no"
    frameborder="0"
    allowfullscreen="true"
    allow="autoplay; clipboard-write; encrypted-media; picture-in-picture; web-share">
  </iframe>
</div>

Значение padding-bottom: 56.25% сохраняет соотношение сторон 16:9. Измените на 75% для контента в формате 4:3.

Устранение требования Facebook App ID

Если вы хотите, чтобы нативный метод oEmbed WordPress (методы 1 и 2) работал надёжно, необходимо зарегистрировать приложение Facebook и предоставить его ID в WordPress.

Шаг 1: Создайте приложение Facebook

  1. Перейдите на developers.facebook.com и войдите в систему.
  2. Нажмите Мои приложения > Создать приложение.
  3. Выберите тип приложения Потребитель.
  4. Завершите мастер настройки. Для базового использования oEmbed не нужно отправлять приложение на проверку.
  5. На панели управления приложением скопируйте свой App ID.

Шаг 2: Добавьте App ID в WordPress

Наиболее чистый подход — добавить App ID через файл functions.php вашей темы или плагин для конкретного сайта:

add_filter( 'oembed_fetch_url', function( $provider, $url, $args ) {
    if ( strpos( $provider, 'facebook.com' ) !== false ) {
        $provider = add_query_arg( 'access_token', 'YOUR_APP_ID|YOUR_CLIENT_TOKEN', $provider );
    }
    return $provider;
}, 10, 3 );

Замените YOUR_APP_ID и YOUR_CLIENT_TOKEN значениями из панели управления приложением Facebook в разделе Настройки > Дополнительно > Клиентский токен.

Кроме того, несколько плагинов обрабатывают это автоматически — в частности, Embed Plus for Facebook и WP Facebook oEmbed Fix.

Метод 4: Сторонние плагины для расширенного управления

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

Smash Balloon Social Post Feed — наиболее широко используемый вариант. После установки и авторизации аккаунта Facebook он предоставляет шорткод и блок Gutenberg с детальным управлением шириной плеера, поведением автовоспроизведения и отображением подписей.

Embed Plus for Facebook специально ориентирован на аутентификацию oEmbed и является лёгким решением, если ваша единственная цель — исправить проблему с App ID без добавления полноценного плагина социальных лент.

WP YouTube Lyte / Embed Optimizer (от команды WordPress Performance) может выполнять отложенную загрузку встраиваний Facebook, чтобы предотвратить блокировку рендеринга страницы iframe — значимое улучшение Core Web Vitals на страницах с большим количеством контента.

Сравнение методов

МетодТребует App IDАдаптивный по умолчаниюРаботает с приватными видеоУровень настройкиЛучше всего для
Блок Embed в GutenbergДа (после 2020)ДаНетНизкийСтандартные публичные видео, простая настройка
Вставка URL в Classic EditorДа (после 2020)ДаНетНизкийУстаревшие установки WordPress
Нативный iframe FacebookНетНет (требуется ручное исправление)НетСреднийНадёжное встраивание без настройки API
Сторонний плагинЗависит от плагинаДаЧастичноВысокийРасширенные макеты, соответствие GDPR, ленты

Производительность и соображения Core Web Vitals

Iframe встраивания Facebook загружает несколько сторонних скриптов с connect.facebook.net, что может добавить 200–600 мс блокирующей рендеринг задержки и негативно повлиять на показатели Largest Contentful Paint (LCP) и Total Blocking Time (TBT).

Практические меры по снижению нагрузки:

  • Паттерн фасада: Замените iframe статичным миниатюрным изображением и загружайте реальный плеер только по клику пользователя. Подход Lite YouTube Embed можно адаптировать для Facebook с использованием пользовательского фасада.
  • Атрибут loading="lazy": Добавьте loading="lazy" к тегу iframe, чтобы отложить загрузку до момента появления элемента в области просмотра.
  • Альтернатива с самостоятельным хостингом видео: Если видео является вашим собственным контентом, рассмотрите возможность загрузки его непосредственно в медиатеку WordPress или размещения на VPS с настроенной конфигурацией потокового видео. Это полностью устраняет зависимость от сторонних скриптов.

Для высоконагруженных сайтов WordPress, где скорость страницы напрямую влияет на конверсию, использование собственной серверной инфраструктуры на выделенном сервере даёт полный контроль над заголовками кэширования, интеграцией CDN и порядком загрузки скриптов — ничего из этого недоступно в общих средах.

Когда посетитель загружает страницу, содержащую встраивание Facebook, скрипты Facebook устанавливают сторонние файлы cookie и могут собирать поведенческие данные — даже если у посетителя нет аккаунта Facebook. В соответствии с GDPR (ЕС), LGPD (Бразилия) и CCPA (Калифорния) это представляет собой обработку данных третьими сторонами, требующую явного согласия пользователя до загрузки iframe.

Реализуйте шлюз согласия с помощью плагина, такого как Complianz или Cookiebot, который заменяет iframe заглушкой до тех пор, пока пользователь не примет соответствующую категорию файлов cookie. Это не является опциональным для сайтов с трафиком из ЕС — это законодательное требование.

Устранение распространённых ошибок встраивания

Видео показывает заглушку или сломанное встраивание в редакторе, но работает на фронтенде: Это известная проблема рендеринга Gutenberg. Предварительный просмотр редактора использует сессию пользователя-администратора, у которого может не быть правильного кэша oEmbed. Очистите кэш oEmbed, удалив записи метаданных записи _oembed_* для затронутой записи, или используйте команду WP-CLI:

wp post meta delete <post_id> --match-prefix=_oembed_

«Извините, этот контент не удалось встроить» на фронтенде: Почти всегда вызвано отсутствующим App ID. Следуйте шагам настройки App ID, описанным выше.

Видео встраивается корректно, но исчезает после обновления WordPress: WordPress периодически обновляет список oEmbed-провайдеров. Изменение эндпоинта API Facebook может нарушить существующие встраивания. Проверьте список провайдеров wp-includes/class-oembed.php и сравните с текущим задокументированным эндпоинтом Facebook.

Встраивание работает на тестовом сервере, но не на рабочем: API oEmbed Facebook проверяет запрашивающий домен по списку разрешённых доменов приложения. Добавьте ваш рабочий домен в поле Домены приложения в разделе Настройки > Основное приложения Facebook.

Приватные видео или видео из групп не могут быть встроены: API oEmbed Facebook обслуживает только публично доступные видео. Поддерживаемого обходного пути для приватного контента не существует — единственный вариант — скачать видео и разместить его самостоятельно, например на VPS с cPanel с настроенным медиакаталогом для прямой потоковой передачи.

Соображения о хостинге для сайтов WordPress со встроенными медиафайлами

Страницы со встроенными видео iframe значительно тяжелее стандартных страниц с контентом. Каждое встраивание Facebook вызывает DNS-запросы, TCP-рукопожатия и загрузку скриптов из CDN Facebook при каждой некэшированной загрузке страницы.

Если ваш сайт WordPress работает на виртуальном хостинге, время обработки на стороне сервера не является узким местом — им являются сторонние запросы на стороне клиента. Однако если вы также самостоятельно размещаете видеофайлы или управляете сайтом с большим количеством медиаконтента, ограничения виртуального хостинга по пропускной способности и вводу-выводу становятся актуальными ограничениями.

Для сайтов, сочетающих встроенное социальное видео с оригинальным медиаконтентом, среда VPS-хостинга с объектным кэшированием (Redis или Memcached), полностраничным кэшем (Nginx FastCGI cache или Varnish) и правильно настроенным CDN обеспечит измеримо лучшие показатели Core Web Vitals по сравнению с любой общей средой.

Защита административной части WordPress и эндпоинтов встраивания с помощью действительного SSL-сертификата также является обязательным условием — API Facebook откажется обслуживать oEmbed-ответы для источников без HTTPS. Если ваш сайт ещё не использует HTTPS, начните с получения SSL-сертификата, прежде чем устранять любые проблемы со встраиванием.

Ключевые технические выводы

  • Эндпоинт oEmbed Facebook требует App ID с октября 2020 года. Любое руководство, не упоминающее об этом, устарело.
  • Блок Embed в Gutenberg и метод URL в Classic Editor оба зависят от одного и того же класса WP_oEmbed и одного и того же требования App ID.
  • Метод нативного iframe Facebook является наиболее надёжным запасным вариантом для публичных видео и не требует учётных данных API.
  • Iframe с фиксированными размерами необходимо оборачивать в адаптивный CSS-контейнер для корректного отображения на мобильных устройствах.
  • Встраивания Facebook загружают сторонние скрипты, влияющие на Core Web Vitals. Реализуйте отложенную загрузку или паттерн фасада на страницах, критичных к производительности.
  • Соответствие GDPR требует шлюза согласия до загрузки iframe — а не просто баннера о файлах cookie.
  • Приватные видео Facebook не могут быть встроены на внешние сайты никаким поддерживаемым методом.
  • Всегда проверяйте, что ваш рабочий домен указан в списке разрешённых доменов приложения Facebook, чтобы предотвратить проблемы при переходе с тестового на рабочий сервер.

Часто задаваемые вопросы

Почему моё встроенное видео с Facebook показывает сломанную заглушку вместо видео?

Наиболее вероятная причина — отсутствующий или неправильно настроенный Facebook App ID. С октября 2020 года API oEmbed Facebook требует зарегистрированного App ID с вашим доменом, указанным в списке разрешённых доменов. Настройте App ID в WordPress с помощью фильтра oembed_fetch_url или установите плагин, который обрабатывает это автоматически.

Можно ли встроить приватное видео с Facebook в WordPress?

Нет. API oEmbed Facebook разрешает только публично доступные URL видео. Видео, ограниченные для друзей, групп или определённой аудитории, не могут быть встроены на внешние сайты никаким поддерживаемым методом. Единственная альтернатива — скачать видео и разместить его на собственном сервере.

Замедляет ли встраивание видео с Facebook мой сайт WordPress?

Да, ощутимо. Каждое встраивание Facebook загружает скрипты с connect.facebook.net, которые добавляют блокирующую рендеринг задержку. Смягчите это, добавив loading="lazy" к iframe, реализовав фасад с загрузкой по клику или используя плагин Embed Optimizer для отложенного выполнения скриптов.

Нужен ли плагин для встраивания видео с Facebook в WordPress?

Не обязательно. WordPress поддерживает oEmbed Facebook нативно, но для корректной работы после 2020 года необходимо настроить действительный App ID. Если вы используете нативный код iframe непосредственно с Facebook, плагин вообще не требуется.

Законно ли встраивать видео с Facebook на мой сайт?

Встраивание публично опубликованных видео с Facebook с использованием официального механизма встраивания Facebook в целом разрешено в соответствии с Условиями использования Facebook при условии, что исходное видео не нарушает авторских прав. Однако встраивание активирует скрипты отслеживания Facebook, что создаёт обязательства по GDPR для сайтов с посетителями из ЕС. Всегда реализуйте шлюз согласия на использование файлов cookie до загрузки iframe.

15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать