wp_oembed_add_provider() WP 2.9.0

Додає oEmbed провайдера. Це URL, який буде парситися в контенті для виведення HTML коду з іншого сайту.

Докладніше про oEmbed в WordPress .

Підходить тільки для сайтів, які підтримують oEmbed формат. Для інших для обробки URL у контенті потрібно створити обробник за допомогою wp_embed_register_handler() .

Працює на основі:
WP_oEmbed::_add_provider_early()

Хуків немає.

Повертає

null. Нічого.

Використання

wp_oembed_add_provider( $format, $provider, $regex );
$format
(рядок) (обов’язковий)
Паттерн URL який шукатиметься в контенті. Тут можна вказати регулювання або використовувати знак
*, який потім буде замінено на
(.+).
$provider
(рядок) (обов’язковий)

URL кінцевої точки (endpoint) по якій сайт віддає дані oEmbed формату .

Встановивши порожнє значення, WP спробує отримати це посилання із заголовків HTML оброблюваного посилання (discovery).

$regex
(true/false)
Чи вказано регулювання в параметрі
$format . true – передане регулювання.


Типово: false

Приклади

0

#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.

0

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

#3 Приклади додавання провайдерів з ядра

Дивіться код WP_oEmbed::__construct() .

нотатки

список змін

З версії 2.9.0Введено.

Код wp_oembed_add_provider() WP 6.0.2

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

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *