WP_oEmbed::data2html()publicWP 2.9.0

Converts a data object from WP_oEmbed::fetch() and returns the HTML.

Method of the class: WP_oEmbed{}

Hooks from the method

Return

String|false. The HTML needed to embed on success, false on failure.

Usage

$WP_oEmbed = new WP_oEmbed();
$WP_oEmbed->data2html( $data, $url );
$data(object) (required)
A data object result from an oEmbed provider.
$url(string) (required)
The URL to the content that is desired to be embedded.

Changelog

Since 2.9.0 Introduced.

WP_oEmbed::data2html() code WP 6.5.2

public function data2html( $data, $url ) {
	if ( ! is_object( $data ) || empty( $data->type ) ) {
		return false;
	}

	$return = false;

	switch ( $data->type ) {
		case 'photo':
			if ( empty( $data->url ) || empty( $data->width ) || empty( $data->height ) ) {
				break;
			}
			if ( ! is_string( $data->url ) || ! is_numeric( $data->width ) || ! is_numeric( $data->height ) ) {
				break;
			}

			$title  = ! empty( $data->title ) && is_string( $data->title ) ? $data->title : '';
			$return = '<a href="' . esc_url( $url ) . '"><img src="' . esc_url( $data->url ) . '" alt="' . esc_attr( $title ) . '" width="' . esc_attr( $data->width ) . '" height="' . esc_attr( $data->height ) . '" /></a>';
			break;

		case 'video':
		case 'rich':
			if ( ! empty( $data->html ) && is_string( $data->html ) ) {
				$return = $data->html;
			}
			break;

		case 'link':
			if ( ! empty( $data->title ) && is_string( $data->title ) ) {
				$return = '<a href="' . esc_url( $url ) . '">' . esc_html( $data->title ) . '</a>';
			}
			break;

		default:
			$return = false;
	}

	/**
	 * Filters the returned oEmbed HTML.
	 *
	 * Use this filter to add support for custom data types, or to filter the result.
	 *
	 * @since 2.9.0
	 *
	 * @param string $return The returned oEmbed HTML.
	 * @param object $data   A data object result from an oEmbed provider.
	 * @param string $url    The URL of the content to be embedded.
	 */
	return apply_filters( 'oembed_dataparse', $return, $data, $url );
}