Over 10 years ago, we introduced the oEmbed API to WordPress, expanding how WordPress handled embedding to cover all WordPress sites. It was an intentional decision to focus on oEmbed at the time: we wanted to focus on the embedding mechanism that would give site owners maximum control over what their embeds looked like. The code we wrote back then still runs on tens of millions of WordPress sites every day.
There was something extra that continued to bug me, however. What about all the other sites? oEmbed provides rich embed experiences, but not every site needs that. Sometimes, you just need a card with an image and a description, which is where OpenGraph has similarly stood the test of time. It provides a straightforward method for both site owners to create simple, rich embeds, and for service providers like Slack, Discord, or even Apple Messages to safely create a rich card to place alongside links.
WordPress has grown since then, too. The big change is Gutenberg, of course, which really brought forward the idea that the editor should be a rich content experience, that shouldn’t just be reserved for the front end.
With that in mind, I build a plugin to handle embedding all the other sites.
This is a block plugin that tries to avoid you using the block it provides if at all possible! Instead, it hooks into the end of the Embed block rendering process – if the URL you pasted couldn’t be embedded all the normal ways, this plugin will try a few more fall back options: OpenGraph, Twitter Card tags, or even just a plain description in the meta tags. It’s the kind of plugin that you can install, and never have to think about again.



One of the nicest things about WordPress is how pluggable it is. Even as a long time WordPress Core developer, I don’t think everything needs to land in Core, sometimes a feature can live as handy little plugin. If you like everything just magically embedding, give this plugin a try!



