oEmbed – łatwe umieszczanie we wpisach elementów z zewnętrznych serwisów

oEmbed to wbudowany w WordPressa mechanizm ułatwiający umieszczanie na naszej stronie elementów z zewnętrznych serwisów, takich jak YouTube, Vimeo, Twitter, Instagram czy Flickr. Zwykle każda z tego typu usług udostępnia jakiś kod, za pomocą którego możemy na naszej stronie umieścić film czy zdjęcie. Taka metoda nie jest jednak szczególnie wygodna – kody różnią się pomiędzy serwisami, a narzędzia do ich generowania najczęściej nie są zbyt przyjazne. Dzięki oEmbed wystarczy do treści wpisu lub strony wkleić link do elementu, który chcemy zamieścić – i już.

WordPress w najnowszej wersji 3.5 obsługuje następujące serwisy: blip.tv, DailyMotion, Flickr (zdjęcia i filmy), FunnyOrDie.com, Hulu, Instagram, Qik, Photobucket, PollDaddy, Revision3, Scribd, SlideShare, SoundCloud, SmugMug, Twitter, Viddler, Vimeo, YouTube i WordPress.tv.

Zobaczmy na kilku przykładach jak działa oEmbed.

YouTube


Vimeo


Twitter


Instagram

Warownia

Warownia

SoundCloud


Warto zauważyć, że jeśli umieścimy któryś z tych adresów jako link (w znaczniku <a>), to nie zostanie on przetworzony przez mechanizm oEmbed.

Co gdy serwis, z którego chcemy skorzystać, nie jest obsługiwany przez WordPressa?

Przez wzgląd na bezpieczeństwo WordPress nie pozwala na umieszczanie w ten sposób elementów z serwisów nie znajdujących się na jego liście. Ponieważ oEmbed posiada swój standard, to wiele stron udostępnia specjalny interfejs, który możemy wskazać WordPressowi. Listę witryb wspierających ten standard (nie wiem na ile jest ona kompletna) możemy znaleźć tutaj. Znajdują się na niej wszystkie dane niezbędne do skonfigurowania oEmbed w WordPressie.

Aby dodać nowego dostawcę należy umieścić w pliku functions.php następujący kod:

wp_oembed_add_provider('http://www.ifixit.com/Guide/View/*', 'http://www.ifixit.com/Embed');

Pierwszy parametr (http://www.ifixit.com/Guide/View/*) to schemat adresów URL do osadzania (URL scheme), a drugi (http://www.ifixit.com/Embed) to adres interfejsu, z którego WordPress pobierze sobie odpowiednio sformatowane dane do wyświetlenia na stronie (API endpoint). Oba te parametry znajdziemy na tej liście.

Bezpośredni link