embed_oembed_discover
Позволяет указать, нужно ли переходить по 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, но если не является, то WordPress может перейти по URL и посмотреть, есть ли в HTML метки, указывающие, что URL можно встроить.
Так вот, этот хук позволяет включить или отключить такую проверку HTML-метатега. То есть если в хуке вернуть false, то такая проверка не будет выполняться для неизвестных URL. Таким образом, если мы вставим в контент URL, который неизвестен WordPress, то он никак не будет проверяться и просто будет выведен в контенте как есть.
Читайте также 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
Примеры
#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. |
Где вызывается хук
$attr['discover'] = apply_filters( 'embed_oembed_discover', true );