Skip to content
Snippets Groups Projects
Select Git revision
  • e01e05ef502bf8330b8630e7723ca73b80c997f1
  • noblogs default
  • noblogs-5.7.1
  • upstream
  • noblogs-5.7
  • noblogs-5.6new
  • upstream5.5.1
  • noblogs28dic
  • upstream28dic
  • noblogs-5.5.1
  • noblogs-5.4.2
  • noblogs-5.4_seconda
  • noblogs-5.4
  • noblogs-7c
  • wp5.2.3p3
  • mergedbconf
  • noblogs-5.7.1
  • noblogs.5.7.0p1
  • noblogs-5.7.0
  • noblogs-5.6p3
  • noblogs5.6p2
  • noblogs-5.6p1
  • noblogs-5.6
  • noblogs-5.4.2p1
  • noblogs-5.4.2
  • noblogs-5.4.1
  • noblogs-5.4
  • noblogs-p5.4
  • noblogs-5.3.2p2
  • noblogs-5.3.2p1
  • noblogs-5.3.2
  • noblogs-5.3
  • noblogs-5.2.3p4
  • noblogs-5.2.3p3
  • noblogs-5.2.3p2
  • noblogs-5.2.3p1
36 results

class-wp-embed.php

Blame
  • class-wp-embed.php 14.40 KiB
    <?php
    /**
     * API for easily embedding rich media such as videos and images into content.
     *
     * @package WordPress
     * @subpackage Embed
     * @since 2.9.0
     */
    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 );
    
    		// 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 );
    
    		// 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' ) );
    	}
    
    	/**
    	 * Process 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 );