The oembed_endpoint_url WordPress PHP filter modifies the oEmbed endpoint URL.
Usage
add_filter( 'oembed_endpoint_url', 'my_custom_oembed_endpoint_url', 10, 3 );
function my_custom_oembed_endpoint_url( $url, $permalink, $format ) {
// Your custom code here
return $url;
}
Parameters
- $url (string) – The URL to the oEmbed endpoint.
- $permalink (string) – The permalink used for the URL query arg.
- $format (string) – The requested response format.
More information
See WordPress Developer Resources: oembed_endpoint_url
Examples
Change oEmbed endpoint to a custom URL
Modify the oEmbed endpoint URL to use a custom URL.
add_filter( 'oembed_endpoint_url', 'change_oembed_endpoint_url', 10, 3 );
function change_oembed_endpoint_url( $url, $permalink, $format ) {
$custom_url = 'https://my-custom-oembed-provider.com/';
return $custom_url;
}
Add additional parameters to the oEmbed URL
Add extra parameters to the oEmbed URL, like an API key.
add_filter( 'oembed_endpoint_url', 'add_extra_params_to_oembed_url', 10, 3 );
function add_extra_params_to_oembed_url( $url, $permalink, $format ) {
$api_key = 'your_api_key';
$url .= '&api_key=' . $api_key;
return $url;
}
Use a different oEmbed provider based on post type
Change the oEmbed provider based on the post type of the content being embedded.
add_filter( 'oembed_endpoint_url', 'switch_oembed_provider_based_on_post_type', 10, 3 );
function switch_oembed_provider_based_on_post_type( $url, $permalink, $format ) {
$post_id = url_to_postid( $permalink );
$post_type = get_post_type( $post_id );
if ( 'custom_post_type' === $post_type ) {
$url = 'https://custom-provider.com/';
}
return $url;
}
Force a specific response format
Force the oEmbed response to always be in a specific format, such as JSON.
add_filter( 'oembed_endpoint_url', 'force_oembed_response_format', 10, 3 );
function force_oembed_response_format( $url, $permalink, $format ) {
$url = remove_query_arg( 'format', $url );
$url = add_query_arg( 'format', 'json', $url );
return $url;
}
Modify oEmbed URL based on custom conditions
Customize the oEmbed URL based on specific conditions, such as user role or capabilities.
add_filter( 'oembed_endpoint_url', 'modify_oembed_url_based_on_conditions', 10, 3 );
function modify_oembed_url_based_on_conditions( $url, $permalink, $format ) {
$user = wp_get_current_user();
if ( in_array( 'administrator', $user->roles ) ) {
$url = add_query_arg( 'admin', '1', $url );
}
return $url;
}