wp_filter_oembed_result
函数
      wp_filter_oembed_result ( $result, $data, $url )    - 参数
- 
- 
                (string)
 $result
 The oEmbed HTML result.- Required: 是
 
- 
                (object)
 $data
 A data object result from an oEmbed provider.- Required: 是
 
- 
                (string)
 $url
 The URL of the content to be embedded.- Required: 是
 
 
- 
                (string)
- 返回值
- 
- (string) The filtered and sanitized oEmbed result.
 
- 定义位置
- 
- 
                                  wp-includes/embed.php
 , line 909
 
- 
                                  wp-includes/embed.php
- 引入
- 4.4.0
- 弃用
- –
过滤给定的oEmbed HTML。
如果`$url`不在可信任的提供者名单上,我们需要对HTML进行严格的过滤以保证安全。
只过滤’rich’和’video’响应类型。
function wp_filter_oembed_result( $result, $data, $url ) {
	if ( false === $result || ! in_array( $data->type, array( 'rich', 'video' ), true ) ) {
		return $result;
	}
	$wp_oembed = _wp_oembed_get_object();
	// Don't modify the HTML for trusted providers.
	if ( false !== $wp_oembed->get_provider( $url, array( 'discover' => false ) ) ) {
		return $result;
	}
	$allowed_html = array(
		'a'          => array(
			'href' => true,
		),
		'blockquote' => array(),
		'iframe'     => array(
			'src'          => true,
			'width'        => true,
			'height'       => true,
			'frameborder'  => true,
			'marginwidth'  => true,
			'marginheight' => true,
			'scrolling'    => true,
			'title'        => true,
		),
	);
	$html = wp_kses( $result, $allowed_html );
	preg_match( '|(.*?
)?.*()|ms', $html, $content );
	// We require at least the iframe to exist.
	if ( empty( $content[2] ) ) {
		return false;
	}
	$html = $content[1] . $content[2];
	preg_match( '/ src=(['"])(.*?)1/', $html, $results );
	if ( ! empty( $results ) ) {
		$secret = wp_generate_password( 10, false );
		$url = esc_url( "{$results[2]}#?secret=$secret" );
		$q   = $results[1];
		$html = str_replace( $results[0], ' src=' . $q . $url . $q . ' data-secret=' . $q . $secret . $q, $html );
		$html = str_replace( '
			  
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
 
      