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 відео відразу на плеєр? Нижче розглянемо, як таке зробити.

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

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

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 адреса не оприлюднюватиметься. Обов’язкові поля позначені *