15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij
23.10.2024
2 +1

Jak osadzać filmy z Facebooka w postach i stronach WordPress

Osadzanie wideo z Facebooka w poście lub na stronie WordPress oznacza wstawienie działającego odtwarzacza wideo bezpośrednio do treści za pomocą połączenia oEmbed opartego na URL lub fragmentu iframe — bez konieczności przesyłania plików. WordPress obsługuje to natywnie poprzez wbudowaną listę dostawców oEmbed, która obejmuje Facebooka, co oznacza, że wklejenie surowego URL wideo do edytora wystarczy, aby wyrenderować w pełni funkcjonalny odtwarzacz na stronie.

Ten przewodnik szczegółowo omawia każdą dostępną metodę: edytor bloków Gutenberg, Classic Editor, natywny kod osadzania Facebooka oraz wtyczki innych firm. Porusza również zmiany uwierzytelniania wprowadzone przez Facebooka w 2018 i 2023 roku, które uniemożliwiają proste wklejanie URL wielu użytkownikom — kluczowy szczegół pomijany przez większość poradników.

Dlaczego osadzanie wideo z Facebooka jest bardziej skomplikowane, niż wygląda

Facebook wycofał anonimowy punkt końcowy oEmbed w październiku 2020 roku. Od tego czasu każde żądanie oEmbed do graph.facebook.com/oembed_video wymaga prawidłowego App ID Facebooka oraz zarejestrowanej domeny. WordPress nadal wymienia Facebooka jako obsługiwanego dostawcę oEmbed, ale bez skonfigurowanego App ID osadzanie po cichu kończy się niepowodzeniem i renderuje jedynie symbol zastępczy lub surowy URL.

To najczęstszy powód, dla którego programiści WordPress odkrywają, że wklejenie URL wideo z Facebooka „po prostu nie działa” na stronach produkcyjnych, mimo że wydaje się działać w niektórych środowiskach lokalnych lub z pamięcią podręczną.

Zrozumienie tego ograniczenia pozwala określić, której metody należy użyć.

Metoda 1: Edytor bloków Gutenberg z blokiem osadzania Facebooka

Edytor bloków Gutenberg oferuje dedykowany blok Osadź z wariantem dla Facebooka. Jest to zalecana ścieżka dla większości instalacji WordPress w wersji 5.0 lub nowszej.

Krok 1: Skopiuj prawidłowy URL wideo z Facebooka

Nie wszystkie URL wideo z Facebooka są równoważne. Użyj kanonicznego URL udostępniania, a nie URL z paska adresu przeglądarki podczas oglądania wideo w trybie pełnoekranowym.

  1. Przejdź do wideo na Facebooku w przeglądarce.
  2. Kliknij menu z trzema kropkami (...) w prawym górnym rogu posta.
  3. Wybierz Kopiuj link.

Wynikowy URL powinien mieć jeden z następujących formatów:

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

Unikaj używania URL zawierających /reel/, jeśli zamierzasz osadzić standardowe wideo — Reels korzystają z innego punktu końcowego i mogą nie być poprawnie rozwiązywane przez standardową ścieżkę oEmbed.

Krok 2: Otwórz post lub stronę w edytorze bloków

W panelu WordPress przejdź do Posty lub Strony i otwórz element treści, który chcesz edytować. Kliknij ikonę +, aby dodać nowy blok w wybranym miejscu.

Krok 3: Wstaw blok osadzania Facebooka

Wpisz Facebook w polu wyszukiwania bloków lub przejdź do sekcji Osadź w panelu bloków. Wybierz blok Facebook. Pojawi się pole do wpisania URL.

Krok 4: Wklej URL wideo i osadź

Wklej skopiowany URL w pole i naciśnij Enter lub kliknij Osadź. WordPress wysyła żądanie oEmbed do API Facebooka. Jeśli skonfigurowano prawidłowy App ID (patrz sekcja App ID poniżej), odtwarzacz wideo renderuje się natychmiast w podglądzie edytora.

Jeśli widzisz komunikat *„Przepraszamy, tej treści nie można osadzić”*, problem prawie na pewno wynika z brakującego App ID — nie z formatu URL.

Krok 5: Opublikuj lub zaktualizuj

Kliknij Opublikuj lub Zaktualizuj. Osadzony odtwarzacz jest teraz aktywny na stronie.

Metoda 2: Classic Editor (URL w osobnej linii)

W przypadku witryn nadal korzystających z wtyczki Classic Editor lub wersji WordPress wcześniejszych niż 5.0, mechanizm oEmbed działa przez inną ścieżkę kodu, ale opiera się na tym samym podstawowym API.

Kroki

  1. Skopiuj URL wideo z Facebooka, korzystając z tego samego procesu opisanego powyżej.
  2. Otwórz post lub stronę w Classic Editor.
  3. Przełącz się na zakładkę Wizualny (nie Tekst/HTML).
  4. Wklej URL w osobnej linii, bez otaczającego tekstu, znaczników hiperłącza ani znaków końcowych.
  5. Kliknij Opublikuj lub Podgląd.

Klasa WP_oEmbed WordPress przechwytuje URL podczas przetwarzania filtra the_content i zastępuje go znacznikiem iframe zwróconym przez punkt końcowy oEmbed Facebooka.

Krytyczna pułapka: Jeśli wkleisz URL wewnątrz akapitu z innym tekstem, WordPress nie uruchomi rozwiązywania oEmbed. URL musi zajmować samodzielny węzeł akapitu w treści posta.

Metoda 3: Natywny kod osadzania Facebooka (iframe)

Ta metoda całkowicie omija system oEmbed WordPress i działa niezależnie od konfiguracji App ID. Jest to najbardziej niezawodna opcja dla publicznych filmów.

Jak uzyskać kod osadzania

  1. Przejdź do wideo na Facebooku.
  2. Kliknij menu z trzema kropkami (...) i wybierz Osadź.
  3. Facebook generuje fragment <iframe>. Skopiuj cały fragment.

Typowy fragment kodu osadzania wideo z Facebooka wygląda następująco:

<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>

Wstawianie iframe w WordPress

W Gutenberg: Dodaj blok Własny HTML i wklej kod iframe bezpośrednio.

W Classic Editor: Przełącz się na zakładkę Tekst (widok HTML) i wklej iframe w wybranym miejscu. Nie wklejaj go w zakładce Wizualny — WordPress usunie lub zescapuje HTML.

Uczynienie iframe responsywnym

Domyślny iframe Facebooka używa stałych wymiarów w pikselach, co psuje wygląd na urządzeniach mobilnych. Opakuj go w responsywny kontener:

<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>

Wartość padding-bottom: 56.25% utrzymuje proporcje 16:9. Dostosuj do 75% dla treści 4:3.

Rozwiązanie wymogu App ID Facebooka

Jeśli chcesz, aby natywna metoda oEmbed WordPress (metody 1 i 2) działała niezawodnie, musisz zarejestrować aplikację na Facebooku i podać jej ID do WordPress.

Krok 1: Utwórz aplikację na Facebooku

  1. Przejdź na developers.facebook.com i zaloguj się.
  2. Kliknij Moje aplikacje > Utwórz aplikację.
  3. Wybierz typ aplikacji Konsument.
  4. Ukończ kreator konfiguracji. Nie musisz przesyłać aplikacji do weryfikacji w celu podstawowego użycia oEmbed.
  5. Z panelu aplikacji skopiuj swój App ID.

Krok 2: Dodaj App ID do WordPress

Najczystszym podejściem jest dodanie App ID przez plik functions.php motywu lub wtyczkę dedykowaną dla witryny:

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 );

Zastąp YOUR_APP_ID i YOUR_CLIENT_TOKEN wartościami z panelu aplikacji Facebook w sekcji Ustawienia > Zaawansowane > Token klienta.

Alternatywnie, kilka wtyczek obsługuje to automatycznie — w szczególności Embed Plus for Facebook i WP Facebook oEmbed Fix.

Metoda 4: Wtyczki innych firm dla zaawansowanej kontroli

Wtyczki są właściwym wyborem, gdy potrzebujesz funkcji wykraczających poza podstawowe odtwarzanie: niestandardowych wymiarów odtwarzacza, leniwego ładowania, bramek zgody GDPR lub osadzania opartego na kanałach.

Smash Balloon Social Post Feed to najszerzej stosowana opcja. Po instalacji i autoryzacji konta Facebook udostępnia shortcode i blok Gutenberg z precyzyjnymi kontrolkami szerokości odtwarzacza, zachowania autoodtwarzania i wyświetlania napisów.

Embed Plus for Facebook skupia się konkretnie na uwierzytelnianiu oEmbed i jest lekkim rozwiązaniem, jeśli Twoim jedynym celem jest naprawienie problemu z App ID bez dodawania pełnej wtyczki do kanałów społecznościowych.

WP YouTube Lyte / Embed Optimizer (od zespołu WordPress Performance) może leniwie ładować osadzenia z Facebooka, aby zapobiec blokowaniu renderowania strony przez iframe — co stanowi znaczącą poprawę Core Web Vitals na stronach z dużą ilością treści.

Porównanie metod

MetodaWymaga App IDDomyślnie responsywnaDziała z prywatnymi filmamiPoziom personalizacjiNajlepsza dla
Blok osadzania GutenbergTak (po 2020)TakNieNiskiStandardowe publiczne filmy, prosta konfiguracja
Wklejanie URL w Classic EditorTak (po 2020)TakNieNiskiStarsze instalacje WordPress
Natywny iframe FacebookaNieNie (wymagana ręczna poprawka)NieŚredniNiezawodne osadzanie bez konfiguracji API
Wtyczka innej firmyRóżnieTakCzęściowoWysokiZaawansowane układy, zgodność z GDPR, kanały

Wydajność i kwestie Core Web Vitals

Iframe osadzania Facebooka ładuje wiele skryptów innych firm z connect.facebook.net, co może dodać 200–600 ms opóźnienia blokującego renderowanie i negatywnie wpłynąć na wyniki Largest Contentful Paint (LCP) i Total Blocking Time (TBT).

Praktyczne środki zaradcze:

  • Wzorzec fasady: Zastąp iframe statyczną miniaturą i ładuj prawdziwy odtwarzacz dopiero po kliknięciu przez użytkownika. Podejście Lite YouTube Embed można zaadaptować dla Facebooka przy użyciu niestandardowej fasady.
  • Atrybut loading="lazy": Dodaj loading="lazy" do tagu iframe, aby odroczyć ładowanie do momentu, gdy element znajdzie się w obszarze widocznym.
  • Alternatywa z własnym hostingiem wideo: Jeśli wideo jest Twoją własną treścią, rozważ przesłanie go bezpośrednio do mediów WordPress lub hostowanie na VPS ze skonfigurowanym streamingiem wideo. Całkowicie eliminuje to zależność od skryptów innych firm.

W przypadku witryn WordPress o dużym ruchu, gdzie szybkość strony bezpośrednio wpływa na konwersję, prowadzenie własnej infrastruktury serwerowej na Serwerze Dedykowanym daje pełną kontrolę nad nagłówkami pamięci podręcznej, integracją CDN i kolejnością ładowania skryptów — czego nie ma w środowiskach współdzielonych.

Gdy odwiedzający ładuje stronę zawierającą osadzenie z Facebooka, skrypty Facebooka ustawiają pliki cookie innych firm i mogą zbierać dane behawioralne — nawet jeśli odwiedzający nie ma konta na Facebooku. Zgodnie z GDPR (UE), LGPD (Brazylia) i CCPA (Kalifornia) stanowi to przetwarzanie danych przez strony trzecie, które wymaga wyraźnej zgody użytkownika przed załadowaniem iframe.

Zaimplementuj bramkę zgody za pomocą wtyczki takiej jak Complianz lub Cookiebot, która zastępuje iframe symbolem zastępczym do momentu, gdy użytkownik zaakceptuje odpowiednią kategorię plików cookie. Nie jest to opcjonalne dla witryn z ruchem z UE — jest to wymóg prawny.

Rozwiązywanie typowych problemów z osadzaniem

Wideo pokazuje symbol zastępczy lub uszkodzone osadzenie w edytorze, ale działa na stronie: Jest to znany problem z renderowaniem w Gutenberg. Podgląd edytora używa sesji użytkownika administratora, która może nie mieć prawidłowej pamięci podręcznej oEmbed. Wyczyść pamięć podręczną oEmbed, usuwając wpisy meta posta _oembed_* dla danego posta, lub użyj polecenia WP-CLI:

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

„Przepraszamy, tej treści nie można osadzić” na stronie: Prawie zawsze spowodowane brakującym App ID. Wykonaj powyższe kroki konfiguracji App ID.

Wideo osadza się poprawnie, ale znika po aktualizacji WordPress: WordPress okresowo aktualizuje listę dostawców oEmbed. Zmiana punktu końcowego API Facebooka może uszkodzić istniejące osadzenia. Sprawdź listę dostawców wp-includes/class-oembed.php i porównaj z aktualnie udokumentowanym punktem końcowym Facebooka.

Osadzenie działa na środowisku testowym, ale nie na produkcyjnym: API oEmbed Facebooka weryfikuje domenę żądającą względem listy dozwolonych domen aplikacji. Dodaj swoją domenę produkcyjną do pola Domeny aplikacji w aplikacji Facebook w sekcji Ustawienia > Podstawowe.

Prywatnych filmów ani filmów z grup nie można osadzić: API oEmbed Facebooka obsługuje tylko publicznie dostępne filmy. Nie istnieje obsługiwane obejście dla prywatnych treści — jedyną opcją jest pobranie wideo i samodzielne jego hostowanie, na przykład na VPS z cPanel ze skonfigurowanym katalogiem mediów do bezpośredniego streamingu.

Kwestie hostingowe dla witryn WordPress osadzających bogate media

Strony z osadzonymi iframami wideo są znacznie cięższe niż standardowe strony z treścią. Każde osadzenie z Facebooka wyzwala wyszukiwania DNS, uzgadnianie TCP i pobieranie skryptów z CDN Facebooka przy każdym niezbuforowanym ładowaniu strony.

Jeśli Twoja witryna WordPress działa na Hostingu Współdzielonym, czas przetwarzania po stronie serwera nie jest wąskim gardłem — są nim żądania do stron trzecich po stronie klienta. Jednak jeśli hostujesz również pliki wideo lub prowadzisz witrynę z dużą ilością mediów, limity przepustowości i I/O hostingu współdzielonego stają się istotnymi ograniczeniami.

W przypadku witryn łączących osadzone wideo społecznościowe z oryginalną treścią multimedialną, środowisko Hostingu VPS z buforowaniem obiektów (Redis lub Memcached), pełnym buforowaniem stron (Nginx FastCGI cache lub Varnish) i prawidłowo skonfigurowanym CDN zapewni mierzalnie lepsze wyniki Core Web Vitals niż jakiekolwiek środowisko współdzielone.

Zabezpieczenie panelu administracyjnego WordPress i punktów końcowych osadzania za pomocą ważnego certyfikatu SSL jest również bezwzględnie konieczne — API Facebooka odmówi obsługi odpowiedzi oEmbed dla źródeł bez HTTPS. Jeśli Twoja witryna nie korzysta jeszcze z HTTPS, zacznij od Certyfikatu SSL, zanim przystąpisz do rozwiązywania problemów z osadzaniem.

Kluczowe wnioski techniczne

  • Punkt końcowy oEmbed Facebooka wymaga App ID od października 2020 roku. Każdy poradnik, który tego nie wspomina, jest nieaktualny.
  • Blok osadzania Gutenberg i metoda URL w Classic Editor opierają się na tej samej klasie WP_oEmbed i tym samym wymogu App ID.
  • Natywna metoda iframe Facebooka jest najbardziej niezawodnym rozwiązaniem awaryjnym dla publicznych filmów i nie wymaga żadnych poświadczeń API.
  • Iframy o stałych wymiarach muszą być opakowane w responsywny kontener CSS, aby poprawnie wyświetlać się na urządzeniach mobilnych.
  • Osadzenia z Facebooka ładują skrypty innych firm, które wpływają na Core Web Vitals. Zaimplementuj leniwe ładowanie lub wzorzec fasady na stronach wrażliwych na wydajność.
  • Zgodność z GDPR wymaga bramki zgody przed załadowaniem iframe — nie tylko banera cookie.
  • Prywatnych filmów z Facebooka nie można osadzać na zewnętrznych witrynach żadną obsługiwaną metodą.
  • Zawsze sprawdzaj, czy Twoja domena produkcyjna jest wymieniona na liście dozwolonych domen aplikacji Facebook, aby zapobiec problemom przy przejściu ze środowiska testowego na produkcyjne.

Często zadawane pytania

Dlaczego moje osadzone wideo z Facebooka pokazuje uszkodzony symbol zastępczy zamiast wideo?

Najbardziej prawdopodobną przyczyną jest brakujący lub nieprawidłowo skonfigurowany App ID Facebooka. Od października 2020 roku API oEmbed Facebooka wymaga zarejestrowanego App ID z Twoją domeną na liście dozwolonych domen. Skonfiguruj App ID w WordPress za pomocą filtra oembed_fetch_url lub zainstaluj wtyczkę, która obsługuje to automatycznie.

Czy mogę osadzić prywatne wideo z Facebooka w WordPress?

Nie. API oEmbed Facebooka rozwiązuje tylko publicznie dostępne URL wideo. Filmów ograniczonych do znajomych, grup lub określonych odbiorców nie można osadzać na zewnętrznych witrynach żadną obsługiwaną metodą. Jedyną alternatywą jest pobranie wideo i hostowanie go na własnym serwerze.

Czy osadzanie filmów z Facebooka spowalnia moją witrynę WordPress?

Tak, mierzalnie. Każde osadzenie z Facebooka ładuje skrypty z connect.facebook.net, które dodają opóźnienie blokujące renderowanie. Ogranicz to, dodając loading="lazy" do iframe, implementując fasadę click-to-load lub używając wtyczki takiej jak Embed Optimizer, aby odroczyć wykonanie skryptów.

Czy potrzebuję wtyczki, aby osadzać filmy z Facebooka w WordPress?

Niekoniecznie. WordPress obsługuje oEmbed Facebooka natywnie, ale musisz mieć skonfigurowany prawidłowy App ID, aby działało to po 2020 roku. Jeśli używasz natywnego kodu iframe bezpośrednio z Facebooka, żadna wtyczka nie jest wymagana.

Czy osadzanie filmów z Facebooka na mojej stronie jest legalne?

Osadzanie publicznie udostępnionych filmów z Facebooka za pomocą oficjalnego mechanizmu osadzania Facebooka jest generalnie dozwolone zgodnie z Warunkami korzystania z usług Facebooka, pod warunkiem że oryginalny film nie narusza praw autorskich. Jednak osadzanie uruchamia skrypty śledzące Facebooka, co tworzy zobowiązania wynikające z GDPR dla witryn z odwiedzającymi z UE. Zawsze implementuj bramkę zgody na pliki cookie przed załadowaniem iframe.

15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij