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

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


Parameters

$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.

Top ↑

Return

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


Top ↑

Source

File: wp-includes/class-wp-oembed.php. View all references

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

Top ↑

Hooks



Top ↑

Changelog

Changelog
Version Description
2.9.0 Introduced.

Top ↑

User Contributed Notes

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