A WordPress-centric search engine for devs and theme authors



wp_filter_oembed_iframe_title_attribute ›

Since5.2.0
Deprecatedn/a
wp_filter_oembed_iframe_title_attribute ( $result, $data, $url )
Parameters: (3)
  • (string) $result The oEmbed HTML result.
    Required: Yes
  • (object) $data A data object result from an oEmbed provider.
    Required: Yes
  • (string) $url The URL of the content to be embedded.
    Required: Yes
Returns:
  • (string) The filtered oEmbed result.
Defined at:
Codex:

Filters the given oEmbed HTML to make sure iframes have a title attribute.



Source

function wp_filter_oembed_iframe_title_attribute( $result, $data, $url ) {
	if ( false === $result || ! in_array( $data->type, array( 'rich', 'video' ) ) ) {
		return $result;
	}

	$title = ! empty( $data->title ) ? $data->title : '';

	$pattern        = '`<iframe[^>]*?title=(\\\\\'|\\\\"|[\'"])([^>]*?)\1`i';
	$has_title_attr = preg_match( $pattern, $result, $matches );

	if ( $has_title_attr && ! empty( $matches[2] ) ) {
		$title = $matches[2];
	}

	/**
	 * Filters the title attribute of the given oEmbed HTML iframe.
	 *
	 * @since 5.2.0
	 *
	 * @param string $title  The title attribute.
	 * @param string $result The oEmbed HTML result.
	 * @param object $data   A data object result from an oEmbed provider.
	 * @param string $url    The URL of the content to be embedded.
	 */
	$title = apply_filters( 'oembed_iframe_title_attribute', $title, $result, $data, $url );

	if ( '' === $title ) {
		return $result;
	}

	if ( $has_title_attr ) {
		// Remove the old title, $matches[1]: quote, $matches[2]: title attribute value.
		$result = str_replace( ' title=' . $matches[1] . $matches[2] . $matches[1], '', $result );
	}

	return str_ireplace( '<iframe ', sprintf( '<iframe title="%s" ', esc_attr( $title ) ), $result );
}