Добавляет oEmbed провайдера. Это URL который будет парсится в контенте для вывода HTML кода с другого сайта.
Использовать эту функцию (добавлять oEmbed провайдера) нужно только для сайтов которые поддерживают oEmbed формат. Для всех прочих для обработки URL в контенте нужно создавать обработчик с помощью функции wp_embed_register_handler().
Хуков нет.
Возвращает
Null. Ничего.
Использование
wp_oembed_add_provider( $format, $provider, $regex );
Примеры
#1 Пример добавления провайдера
Допустим нам нужно добавить oEmbed встраивание для сайта wizer.me и мы выяснили, что этот сайт является oEmbed провайдером и нашли такие данные для обработки такого запроса:
- URL scheme:
http://*.wizer.me/learn/*
- URL scheme:
https://*.wizer.me/learn/*
- URL scheme:
http://*.wizer.me/preview/*
- URL scheme:
https://*.wizer.me/preview/*
- API endpoint:
http://app.wizer.me/api/oembed.{format}
- Supports discovery via <link> tags
// Добавим встраивание для сайта wizer.me add_action( 'init', 'wizerme_oembed_provider' ); function wizerme_oembed_provider() { wp_oembed_add_provider( 'http://*.wizer.me/learn/*', 'http://app.wizer.me/api/oembed.{format}', false ); wp_oembed_add_provider( 'https://*.wizer.me/learn/*', 'http://app.wizer.me/api/oembed.{format}', false ); wp_oembed_add_provider( 'http://*.wizer.me/preview/*', 'http://app.wizer.me/api/oembed.{format}', false ); wp_oembed_add_provider( 'https://*.wizer.me/preview/*', 'http://app.wizer.me/api/oembed.{format}', false ); }
Теперь при вставке в контент ссылки вида https://app.wizer.me/preview/1J09IV
, она будет обработана и встроена в контент в виде iframe.
#2 Пример добавления провайдера
Тут в формате указывается регулярка. Это лишь демонстрация, на деле youtube провайдер уже зарегистрирован в WordPress.
add_action( 'init', 'youtube_oembed_provider' ); function youtube_oembed_provider() { wp_oembed_add_provider( '#https?://youtu\.be/.*#i', 'https://www.youtube.com/oembed', true ); }
#3 Примеры добавления провайдеров из ядра
Смотрите код метода WP_oEmbed::__construct().
Заметки
- Смотрите: WP_oEmbed
Список изменений
function wp_oembed_add_provider( $format, $provider, $regex = false ) { if ( did_action( 'plugins_loaded' ) ) { $oembed = _wp_oembed_get_object(); $oembed->providers[ $format ] = array( $provider, $regex ); } else { WP_oEmbed::_add_provider_early( $format, $provider, $regex ); } }