The embed_oembed_discover WordPress PHP filter enables or disables the inspection of a given URL for discoverable <link> tags.
Usage
add_filter('embed_oembed_discover', 'your_custom_function');
function your_custom_function($enable) {
// your custom code here
return $enable;
}
Parameters
$enable (bool): Whether to enable<link>tag discovery. Default istrue.
More information
See WordPress Developer Resources: embed_oembed_discover
Examples
Disable oEmbed Discovery
Disable oEmbed discovery for all URLs.
add_filter('embed_oembed_discover', '__return_false');
Enable oEmbed Discovery for Specific Domain
Enable oEmbed discovery only for URLs from a specific domain (e.g., example.com).
add_filter('embed_oembed_discover', 'enable_oembed_for_example_domain', 10, 1);
function enable_oembed_for_example_domain($enable) {
$url = wp_extract_urls(get_the_content());
if (strpos($url[0], 'example.com') !== false) {
return true;
}
return false;
}
Disable oEmbed Discovery for YouTube
Disable oEmbed discovery for YouTube URLs.
add_filter('embed_oembed_discover', 'disable_oembed_for_youtube', 10, 1);
function disable_oembed_for_youtube($enable) {
$url = wp_extract_urls(get_the_content());
if (strpos($url[0], 'youtube.com') !== false) {
return false;
}
return $enable;
}
Enable oEmbed Discovery Based on User Role
Enable oEmbed discovery only for posts by authors with the ‘editor’ role.
add_filter('embed_oembed_discover', 'enable_oembed_for_editors', 10, 1);
function enable_oembed_for_editors($enable) {
$user = wp_get_current_user();
if (in_array('editor', $user->roles)) {
return true;
}
return false;
}
Enable oEmbed Discovery for Custom Post Type
Enable oEmbed discovery only for a custom post type called ‘portfolio’.
add_filter('embed_oembed_discover', 'enable_oembed_for_portfolio', 10, 1);
function enable_oembed_for_portfolio($enable) {
if (get_post_type() == 'portfolio') {
return true;
}
return $enable;
}