WordPress.org

Make WordPress Core

Opened 4 years ago

Closed 3 years ago

Last modified 3 years ago

#16327 closed defect (bug) (fixed)

oEmbed - Add a function to remove an oEmbed provider

Reported by: r-a-y Owned by: ryan
Milestone: 3.5 Priority: normal
Severity: normal Version: 2.9
Component: Media Keywords: has-patch needs-refresh
Focuses: Cc:

Description

In /wp-includes/media.php, there's the ability to add an oEmbed provider with wp_oembed_add_provider(), but no way to remove one.

The attached patch is an attempt to allow you to remove an oEmbed provider.

For the $match parameter, I've opted to allow you to match any portion of the $format key.

For example, to remove the YouTube oEmbed provider, you can use:

wp_oembed_remove_provider( '#http://(www\.)?youtube.com/watch.*#i', 'http://www.youtube.com/oembed' );

or:

wp_oembed_remove_provider( 'youtube.com', 'http://www.youtube.com/oembed' );

---

If partial matching for the $format key is undesired, let me know and I'll repatch for an exact match only.

Attachments (3)

16327.001.patch (1.0 KB) - added by r-a-y 4 years ago.
16327.diff (837 bytes) - added by ryan 3 years ago.
16327-ut.diff (564 bytes) - added by ryan 3 years ago.

Download all attachments as: .zip

Change History (8)

@r-a-y4 years ago

comment:1 @nacin4 years ago

  • Milestone changed from Awaiting Review to Future Release
  • Version changed from 3.1 to 2.9

Clever, but I think we should just have:

function wp_oembed_remove_provider( $format ) {
	require_once( ABSPATH . WPINC . '/class-oembed.php' );
	$oembed = _wp_oembed_get_object();
	if ( isset( $oembed->providers[ $format ] ) ) {
		unset( $oembed->providers[ $format ] );
		return true;
	}
	return false;
}

comment:2 @r-a-y4 years ago

That was how I originally wrote the function.

I was concerned about having duplicate $format's when I just realized that $format is a key! D'oh!

So this works for me.

comment:3 @nacin3 years ago

  • Keywords needs-refresh added
  • Milestone changed from Future Release to 3.5

@ryan3 years ago

@ryan3 years ago

comment:4 @ryan3 years ago

  • Owner set to ryan
  • Resolution set to fixed
  • Status changed from new to closed

In [21351]:

Introduce wp_oembed_remove_provider(). Props r-a-y. fixes #16327

comment:5 @ryan3 years ago

rUT936

Version 0, edited 3 years ago by ryan (next)
Note: See TracTickets for help on using tickets.