WP_oEmbed::data2html( object $data, string $url ): string|false

In this article

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

Parameters

$dataobjectrequired
A data object result from an oEmbed provider.
$urlstringrequired
The URL to the content that is desired to be embedded.

Return

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

Source

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 );
}

Hooks

apply_filters( ‘oembed_dataparse’, string $return, object $data, string $url )

Filters the returned oEmbed HTML.

Changelog

VersionDescription
2.9.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.