WP_Embed
- Since
- 2.9.0
- Source
wp-includes/class-wp-embed.php:9
API for easily embedding rich media such as videos and images into content.
Compatibility
- WordPress
- since 2.9.0
- 6.7.7
- 6.8.8
- 6.9.7
- 7.0.4
- 7.1.0
Present in every tracked release (6.7.7 to 7.1.0).
Hooks and filters fired · 7
Every hook that fires from inside WP_Embed, in the order it appears in the class, grouped by the method that fires it.
WP_Embed::shortcode()
- apply_filters( oembed_ttl )filter line 249
- apply_filters( embed_oembed_html )filter line 291
- apply_filters( embed_oembed_discover )filter line 305
- apply_filters( embed_oembed_html )filter line 374
Properties · 7
$handlerspublic$post_IDpublic$usecachepublic$linkifunknownpublic$last_attrpublic$last_urlpublic$return_false_on_failboolpublic- When a URL cannot be embedded, return false instead of returning a link or the URL.
Methods · 13
- __construct()Constructor
- run_shortcode()Processes the [embed] shortcode.
- maybe_run_ajax_cache()If a post/page was saved, then output JavaScript to make an Ajax request that will call WP_Embed::cache_oembed().
- register_handler()Registers an embed handler.
- unregister_handler()Unregisters a previously-registered embed handler.
- get_embed_handler_html()Returns embed HTML for a given URL from embed handlers.
- shortcode()The do_shortcode() callback function.
- delete_oembed_caches()Deletes all oEmbed caches. Unused by core as of 4.0.0.
- cache_oembed()Triggers a caching of all oEmbed results.
- autoembed()Passes any unlinked URLs that are on their own line to WP_Embed::shortcode() for potential embedding.
- autoembed_callback()Callback function for WP_Embed::autoembed().
- maybe_make_link()Conditionally makes a hyperlink based on an internal class variable.
- find_oembed_post_id()Finds the oEmbed cache post ID for a given cache key.
Source code
#[AllowDynamicProperties]class WP_Embed { public $handlers = array(); public $post_ID; public $usecache = true; public $linkifunknown = true; public $last_attr = array(); public $last_url = ''; /** * When a URL cannot be embedded, return false instead of returning a link * or the URL. * * Bypasses the {@see 'embed_maybe_make_link'} filter. * * @var bool */ public $return_false_on_fail = false; /** * Constructor */ public function __construct() { // Hack to get the [embed] shortcode to run before wpautop(). add_filter( 'the_content', array( $this, 'run_shortcode' ), 8 ); add_filter( 'widget_text_content', array( $this, 'run_shortcode' ), 8 ); add_filter( 'widget_block_content', array( $this, 'run_shortcode' ), 8 ); // Shortcode placeholder for strip_shortcodes(). add_shortcode( 'embed', '__return_false' ); // Attempts to embed all URLs in a post. add_filter( 'the_content', array( $this, 'autoembed' ), 8 ); add_filter( 'widget_text_content', array( $this, 'autoembed' ), 8 ); add_filter( 'widget_block_content', array( $this, 'autoembed' ), 8 ); // After a post is saved, cache oEmbed items via Ajax. add_action( 'edit_form_advanced', array( $this, 'maybe_run_ajax_cache' ) ); add_action( 'edit_page_form', array( $this, 'maybe_run_ajax_cache' ) ); } /** * Processes the [embed] shortcode. * * Since the [embed] shortcode needs to be run earlier than other shortcodes, * this function removes all existing shortcodes, registers the [embed] shortcode, * calls do_shortcode(), and then re-registers the old shortcodes. * * @global array $shortcode_tags * * @param string $content Content to parse. * @return string Content with shortcode parsed. */ public function run_shortcode( $content ) { global $shortcode_tags; // Back up current registered shortcodes and clear them all out. $orig_shortcode_tags = $shortcode_tags; remove_all_shortcodes(); add_shortcode( 'embed', array( $this, 'shortcode' ) ); // Do the shortcode (only the [embed] one is registered). $content = do_shortcode( $content, true ); // Put the original shortcodes back. $shortcode_tags = $orig_shortcode_tags; return $content; } /** * If a post/page was saved, then output JavaScript to make * an Ajax request that will call WP_Embed::cache_oembed(). */ public function maybe_run_ajax_cache() { $post = get_post(); if ( ! $post || empty( $_GET['message'] ) ) { return;Changelog
Introduced in 2.9.0. Unchanged from 6.7.7 through 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
About this page
- Parsed data
- Generated from the wordpress-develop 6.7.7 tag, from
src/wp-includes/class-wp-embed.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it. - Corrections
- Something wrong on this page? Report it and it gets fixed in the next regeneration.