wp_embed_register_handler() WP 2.9.0

Реєструє Embed обробник. Це обробник, який перетворює посилання на контент в HTML код.

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

Ця функція розрахована на створення обробників для посилань (для сайтів), які не підтримують wp_oembed_add_provider() .

Працює на основі:
WP_Embed::register_handler()

Хуків немає.

Повертає

null. Нічого.

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

wp_embed_register_handler($id, $regex, $callback, $priority);
$id
(рядок) (обов’язковий)
Внутрішній ідентифікатор (ім’я) оброблювача. Має бути унікальним.
$regex
(рядок) (обов’язковий)
Регулярний вираз, з яким порівнюється URL із контенту.
$matches передається
функцію $callback .
$callback
(callable) (обов’язковий)
Функція зворотного виклику, яка буде викликатись при збігу регулярного виразу.
$priority
(число)
Використовується для визначення порядку, в якому перевірятимуться зареєстровані обробники.


Типово: 10

Приклади

0

#1 Вбудовування gist у контент запису

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

wp_embed_register_handler() – Реєструє Embed обробник.

Приклад нижче працює як у візуальному редакторі, так і у блочному.

Використовуйте наступний код, вставивши у плагіна :

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

список змін

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

Код wp_embed_register_handler() WP 6.0.2

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

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

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