- 1 In A Nutshell
- 2 oEmbed
- 3 Can I Use Any URL With This?
- 4 How Can I Add or Change Support For Websites?
- 5 What About oEmbed Discovery?
- 6 External Resources
- 7 Changelog
- 8 Description
- 9 Usage
- 10 Result
Starting with WordPress 2.9, it's super easy to embed videos, images, and other content into your WordPress site.
In A Nutshell
All you need to do to embed something into a post or page is to post the URL to it into your content area. Make sure that the URL is on its own line and not hyperlinked (clickable when viewing the post).
Check out this cool video: http://www.youtube.com/watch?v=dQw4w9WgXcQ That was a cool video.
WordPress will automatically turn that into a YouTube embed when the post is viewed. As of 3.5, Auto-embeds are automatically enabled and there is no setting to turn them off in the WordPress admin pages. Prior to 3.5, there was an "Auto-embeds" checkbox in Administration > Settings > Media SubPanel.
You can also opt to wrap the URL in the
[embed] shortcode. It will accomplish the same effect, but does not require the URL to be on its own line and the "Auto-embeds" setting to be enabled. It also allows you to set a maximum (but not fixed) width and height, like so:
[embed width="123" height="456"]...[/embed]
If WordPress fails to embed your URL you will get a hyperlink to the URL.
The easy embedding feature is mostly powered by oEmbed, a protocol for site A (such as your blog) to ask site B (such as YouTube) for the HTML needed to embed content (such as a video) from site B.
oEmbed was designed to avoid having to copy and paste HTML from the site hosting the media you wish to embed. It supports videos, images, text, and more.
Can I Use Any URL With This?
Not by default, no. WordPress will only embed URLs matching an internal whitelist. This is for security purposes.
Okay, So What Sites Can I Embed From?
You can use all of these:
|Flickr||Videos and Images|
- Twitter - older versions of WordPress have issues with https embeds, just remove the s from the https to fix.
- YouTube - only public and "unlisted" videos and playlists - "private" videos will not embed.
How Can I Add or Change Support For Websites?
Adding support for an additional website depends on whether the site supports oEmbed or not.
Adding Support For An oEmbed-Enabled Site
If a site supports oEmbed, you'll want to call wp_oembed_add_provider() to add the site and URL format to the internal whitelist.
Adding Support For A Non-oEmbed Site
You'll need to register a handler using wp_embed_register_handler() and provide a callback function that generates the HTML.
Removing Support for An oEmbed-Enabled Site
If you wish to remove an oEmbed-enabled provider, you'll want to call wp_oembed_remove_provider.
What About oEmbed Discovery?
The oEmbed implementation in WordPress has discovery disabled. By default, you can only embed from websites that are listed on the internal whitelist. This is to prevent accidental embedding from malicious websites.
However if you feel you are knowledgeable enough to avoid this, you can give
unfiltered_html users (Administrators and Editors) the ability to embed from websites that have oEmbed discovery tags in their
<head>. You merely need to install Enable oEmbed Discovery plugin.
- How do I resize my oEmbeds? describes setting the $content_width value
- Summary of this feature by the author of this code
- Webmonkey guide to oEmbed
- Official oEmbed website (technical details of the spec)
- Video SEO Plugin that automatically detects embedded movies and adds them to a Video XML Sitemap.
- 3.6 : Rdio, Spotify added.
- 3.5 : Instagram, SoundCloud, SlideShare added. Removed oEmbed options from the Settings Media Screen.
- 3.4 : Twitter added.
- 3.0 : SmugMug, FunnyOrDie added.
- 2.9 : Introduction of the builtin Embeds support.
includeonlydiv style=clear:both; background-color:#EEEEFF; border:1px solid #CCCCCC; color:#000000; padding:7px; margin:0.5em auto 0.5em auto; vertical-align:middle;This article is marked as in need of editing. You can help Codex by editing it./div/includeonlynoinclude
This Template is used by Codex:Template Messages.
pre 检查到模板循环：模板:Message /pre