过滤oEmbed响应数据以返回iframe嵌入代码。

原型

get_oembed_response_data_rich( array $data, WP_Post $post, int $width, int $height )

参数

$data (array) (Required) 响应数据。

$post (WP_Post) (Required) 帖子对象。

$width (int) (Required) 要求的宽度。

$height (int) (Required) 计算出的高度。

返回值

(array)  修改后的响应数据。

源文件

路径:wp-includes/embed.php

<?php
...
function get_oembed_response_data_rich( $data, $post, $width, $height ) {
	$data['width']  = absint( $width );
	$data['height'] = absint( $height );
	$data['type']   = 'rich';
	$data['html']   = get_post_embed_html( $width, $height, $post );
	// Add post thumbnail to response if available.
	$thumbnail_id = false;
	if ( has_post_thumbnail( $post->ID ) ) {
		$thumbnail_id = get_post_thumbnail_id( $post->ID );
	}
	if ( 'attachment' === get_post_type( $post ) ) {
		if ( wp_attachment_is_image( $post ) ) {
			$thumbnail_id = $post->ID;
		} else if ( wp_attachment_is( 'video', $post ) ) {
			$thumbnail_id = get_post_thumbnail_id( $post );
			$data['type'] = 'video';
		}
	}
	if ( $thumbnail_id ) {
		list( $thumbnail_url, $thumbnail_width, $thumbnail_height ) = wp_get_attachment_image_src( $thumbnail_id, array( $width, 99999 ) );
		$data['thumbnail_url']    = $thumbnail_url;
		$data['thumbnail_width']  = $thumbnail_width;
		$data['thumbnail_height'] = $thumbnail_height;
	}
	return $data;
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/get_oembed_response_data_rich/