WP_OEMBED_ADD_PROVIDER() │ WP 2.9.0
Функция WP_OEMBED_ADD_PROVIDER()
позволяет добавить пару формата URL и адреса oEmbed провайдера.
Основные моменты
- Используется в: WP_oEmbed::_add_provider_early()
- Хуки: Нет
Что возвращает
null
— ничего (пустое значение).
Как использовать
Функция вызывается так:
wp_oembed_add_provider( $format, $provider, $regex );
- $format (строка) — обязательный параметр. Формат URL, который может обрабатывать данный провайдер. Можно использовать звездочки (*) как подстановочные знаки.
- $provider (строка) — обязательный параметр. URL самого oEmbed провайдера.
- $regex (логическое значение) — указывает, является ли параметр $format регулярным выражением.
- По умолчанию: false (нет).
Примеры использования
Пример 1: Добавление провайдера
Предположим, нам нужно добавить поддержку oEmbed для сайта wizer.me
, который является провайдером oEmbed. У нас есть следующие данные для работы:
- Схемы URL:
http://*.wizer.me/learn/*
https://*.wizer.me/learn/*
http://*.wizer.me/preview/*
https://*.wizer.me/preview/*
- Конечная точка API:
http://app.wizer.me/api/oembed.{format}
- Поддерживает открытие через теги
<link>
.
В коде это будет выглядеть так:
// Добавляем провайдер для 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, используя регулярное выражение:
// Добавляем провайдер для YouTube
add_action( 'init', 'youtube_oembed_provider' );
function youtube_oembed_provider() {
wp_oembed_add_provider( '#https?://youtu.be/.*#i', 'https://www.youtube.com/oembed', true );
}
Примечание: Это только демонстрация, на самом деле провайдер для YouTube уже зарегистрирован в WordPress.
Примечания
- Подробнее о WP_oEmbed можно узнать из документации.
Изменения
- С версии 2.9.0 — функция была введена.
Код WP_OEMBED_ADD_PROVIDER
Вот код реализации функции wp_oembed_add_provider
в версии WordPress 6.7.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 );
}
}
Теперь вы знаете, как использовать wp_oembed_add_provider
для добавления новых oEmbed провайдеров в WordPress. Надеюсь, этот материал будет полезен для вас!