WordPress Version: 6.5
/**
* Retrieves the oEmbed response data for a given post.
*
* @since 4.4.0
*
* @param WP_Post|int $post Post ID or post object.
* @param int $width The requested width.
* @return array|false Response data on success, false if post doesn't exist
* or is not publicly viewable.
*/
function get_oembed_response_data($post, $width)
{
$post = get_post($post);
$width = absint($width);
if (!$post) {
return false;
}
if (!is_post_publicly_viewable($post)) {
return false;
}
/**
* Filters the allowed minimum and maximum widths for the oEmbed response.
*
* @since 4.4.0
*
* @param array $min_max_width {
* Minimum and maximum widths for the oEmbed response.
*
* @type int $min Minimum width. Default 200.
* @type int $max Maximum width. Default 600.
* }
*/
$min_max_width = apply_filters('oembed_min_max_width', array('min' => 200, 'max' => 600));
$width = min(max($min_max_width['min'], $width), $min_max_width['max']);
$height = max((int) ceil($width / 16 * 9), 200);
$data = array('version' => '1.0', 'provider_name' => get_bloginfo('name'), 'provider_url' => get_home_url(), 'author_name' => get_bloginfo('name'), 'author_url' => get_home_url(), 'title' => get_the_title($post), 'type' => 'link');
$author = get_userdata($post->post_author);
if ($author) {
$data['author_name'] = $author->display_name;
$data['author_url'] = get_author_posts_url($author->ID);
}
/**
* Filters the oEmbed response data.
*
* @since 4.4.0
*
* @param array $data The response data.
* @param WP_Post $post The post object.
* @param int $width The requested width.
* @param int $height The calculated height.
*/
return apply_filters('oembed_response_data', $data, $post, $width, $height);
}