The oembed_dataparse WordPress PHP filter allows you to modify the returned oEmbed HTML. Use this filter to add support for custom data types, or to filter the result.
Usage
add_filter('oembed_dataparse', 'your_custom_function_name', 10, 3);
function your_custom_function_name($return, $data, $url) {
// your custom code here
return $return;
}
Parameters
$return(string) – The returned oEmbed HTML.$data(object) – A data object result from an oEmbed provider.$url(string) – The URL of the content to be embedded.
More information
See WordPress Developer Resources: oembed_dataparse
Examples
Add custom styling to embedded YouTube videos
Add a custom CSS class to YouTube video iframes for custom styling.
add_filter('oembed_dataparse', 'add_youtube_custom_class', 10, 3);
function add_youtube_custom_class($return, $data, $url) {
if ('YouTube' === $data->provider_name) {
$return = str_replace('<iframe', '<iframe class="custom-youtube-class"', $return);
}
return $return;
}
Disable related videos on YouTube embeds
Disable related video suggestions at the end of YouTube embeds.
add_filter('oembed_dataparse', 'disable_youtube_related_videos', 10, 3);
function disable_youtube_related_videos($return, $data, $url) {
if ('YouTube' === $data->provider_name) {
$return = str_replace('?feature=oembed', '?feature=oembed&rel=0', $return);
}
return $return;
}
Change the width of embedded content
Change the width of all embedded content to 800px.
add_filter('oembed_dataparse', 'change_embed_width', 10, 3);
function change_embed_width($return, $data, $url) {
$return = preg_replace('/width="\d+"/', 'width="800"', $return);
return $return;
}
Lazy load embedded content
Add the loading="lazy" attribute to iframes for better performance.
add_filter('oembed_dataparse', 'lazy_load_embeds', 10, 3);
function lazy_load_embeds($return, $data, $url) {
$return = str_replace('<iframe', '<iframe loading="lazy"', $return);
return $return;
}
Remove embedded content from specific URLs
Remove embedded content if the URL contains ‘example.com’.
add_filter('oembed_dataparse', 'remove_example_embeds', 10, 3);
function remove_example_embeds($return, $data, $url) {
if (false !== strpos($url, 'example.com')) {
return '';
}
return $return;
}