wp_embed_register_handler() WP 2.9.0

wp_embed_register_handler() WP 2.9.0
Click here to view original web page at wp-kama.ru

Регистрирует Embed обработчик. Это обработчик, который превращает ссылку в контенте в HTML код.

Эта функция рассчитана на создание обработчиков для ссылок (для сайтов) которые не поддерживают oEmbed формат. Т.е. если сайт поддерживает oEmbed формат, то для него нужно регистрировать провайдера, а не кастомный обработчик создаваемый этой функцией. oEmbed провайдер регистрируется через функцию wp_oembed_add_provider().

Хуков нет.

Возвращает

Null. Ничего.

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

wp_embed_register_handler( $id, $regex, $callback, $priority );
$id(строка) (обязательный)
Внутренний идентификатор (имя) обработчика. Должен быть уникальным.
$regex(строка) (обязательный)
Регулярное выражение, с которым сравнивается URL из контента. $matches передается $callback функцию.
$callback(callable) (обязательный)
Функция обратного вызова, которая будет вызываться при совпадении регулярного выражения.
$priority(число)
Используется для указания порядка, в котором будут проверяться зарегистрированные обработчики.
По умолчанию: 10

Примеры

#1 Встраивание gist в контент записи

Хотите, чтобы ссылка на gist превращалась сразу в код по принципу, как WordPress преобразует ссылку на youtube видео сразу в плеер? Ниже рассмотрим как такое сделать.

Пример ниже работает как в визуальном редакторе, так и в блочном.

Используйте следующий код, вставив в functions.php или оформив в виде плагина:

add_action( 'init', 'register_gist_oembed_provider' );

function register_gist_oembed_provider() {
	wp_embed_register_handler(
		'gist',
		'~https://gist\.github\.com/[a-z0-9]+/[a-z0-9]+~im',
		'callback_gist_oembed_provider'
	);
}

function callback_gist_oembed_provider( $matches ) {
	return sprintf( '<script src="%s.js"></script>', $matches[0] );
}

Так как при таком решении мы не делаем никаких запросов на бэкенде, то и кеширование результата не реализовано.

Заметки

  • Global. WP_Embed. $wp_embed

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

function wp_embed_register_handler( $id, $regex, $callback, $priority = 10 ) {
	global $wp_embed;
	$wp_embed->register_handler( $id, $regex, $callback, $priority );
}

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

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