wp_filter_oembed_iframe_title_attribute( string $result, object $data, string $url )
Filters the given oEmbed HTML to make sure iframes have a title attribute.
Description Description
Parameters Parameters
- $result
-
(string) (Required) The oEmbed HTML result.
- $data
-
(object) (Required) A data object result from an oEmbed provider.
- $url
-
(string) (Required) The URL of the content to be embedded.
Return Return
(string) The filtered oEmbed result.
Source Source
File: wp-includes/embed.php
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 );
}
Expand full source code Collapse full source code View on Trac
Changelog Changelog
| Version | Description |
|---|---|
| 5.2.0 | Introduced. |