embed_oembed_discoverхук-фильтрWP 2.9.0

Позволяет указать нужно ли переходить по URL и искать <link> тег встраивания на удаленном сайте.

Позволяет изменить значение атрибута $attr['discover'] для функции wp_oembed_get( $url, $args ).

Когда любой сайт является поставщиком oEmbed, он добавляет метку об этом в <head> часть HTML документа. Пример таких метатегов:

<link rel="alternate" type="application/json+oembed" href="/api/oembed/1.0/embed?url=https%3A%2F%2Fwp-kama.ru%2Fhandbook%2Fcodex%2Foembed" />
<link rel="alternate" type="text/xml+oembed" href="/api/oembed/1.0/embed?url=https%3A%2F%2Fwp-kama.ru%2Fhandbook%2Fcodex%2Foembed&format=xml" />

Т.е. каждый поставщик oEmbed должен иметь такие метатеги, чтобы уведомить всех, что текущая страница может быть встроена на другом сайте.

Когда мы добавляем любой URL в контент нашего сайта, WordPress проверяет является ли этот URL одним из зарегистрированных поставщиков oEmbed (например YouTube), если является, то код встраивания создается по известной логике для этого URL, но вот если не является, то наш WP может пройти по URL и посмотреть есть ли в HTML метки что URL можно встроить.

Так вот, этот Хук позволяет включить или отключить такую проверку HTML мета-тега. Т.е. если в хуке вернуть false, то такая проверка делаться не будет для неизвестных URL. Таким образом, если мы вставим в контент URL, который неизвестен WP, то он никак не будет проверятся и просто будет выведен в контенте как есть.

Читайте также oEmbed в WordPress.

Использование

add_filter( 'embed_oembed_discover', 'wp_kama_embed_oembed_discover_filter' );

/**
 * Function for `embed_oembed_discover` filter-hook.
 * 
 * @param bool $enable Whether to enable `<link>` tag discovery.
 *
 * @return bool
 */
function wp_kama_embed_oembed_discover_filter( $enable ){

	// filter...
	return $enable;
}
$enable(true|false)
Нужно ли включить поиск тега <link> по URL.
По умолчанию: true

Примеры

0

#1 Отключим авто-определения oEmbed для неизвестных URL

// Remove oEmbed iframes communicate JavaScript from the front-end and back-end.
remove_action( 'wp_head', 'wp_oembed_add_host_js' );

// Turn off oEmbed auto discovery request for unknown URLs.
add_filter( 'embed_oembed_discover', '__return_false' );

Список изменений

С версии 2.9.0 Введена.
С версии 4.4.0 The default value changed to true.

Где вызывается хук

WP_Embed::shortcode()
embed_oembed_discover
wp-includes/class-wp-embed.php 305
$attr['discover'] = apply_filters( 'embed_oembed_discover', true );

Где используется хук в WordPress

Использование не найдено.