wp_oembed_add_provider() WP 2.9.0

Click here to view original web page at wp-kama.ru

Добавляет 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().

Заметки

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

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 );
	}
}

Cвязанные функции

Из метки: WP Embeds (oEmbed) (встраивание URL в контент) (ответ WP на запрос встраивания)