Функция wp_oembed_add_provider()
используется для добавления нового oEmbed провайдера в WordPress. Это позволяет автоматически преобразовывать URL с указанных сайтов в встроенные медиа-контент (например, видео, аудиозаписи или другие медиаформаты) при вставке этих URL в контент.
wp_oembed_add_provider( string $format, string $provider, bool $regex = false )
Параметры
- $format (строка, обязательный) — Формат URL, который будет распознаваться провайдером. Можно использовать символы подстановки (например,
*
для любых символов) или регулярные выражения. - $provider (строка, обязательный) — URL конечной точки (endpoint) oEmbed провайдера, по которой будет получен встроенный контент.
- $regex (логический, необязательный) — Указывает, использует ли параметр
$format
регулярное выражение. По умолчанию —false
.
Возвращаемое значение
Функция не возвращает значений (возвращает null
).
Пример 1: Добавление oEmbed провайдера для сайта с динамическим видео-контентом
Допустим, у нас есть сайт с видео examplevideo.com
, который поддерживает oEmbed. Формат ссылок на страницы видео выглядит как http://examplevideo.com/watch/*
, а конечная точка для получения oEmbed данных — http://examplevideo.com/oembed
.
Для добавления поддержки oEmbed в WordPress для данного сайта используем следующий код:
add_action( 'init', 'examplevideo_oembed_provider' );
function examplevideo_oembed_provider() {
wp_oembed_add_provider( 'http://examplevideo.com/watch/*', 'http://examplevideo.com/oembed', false );
}
Теперь ссылки, вставленные в контент, которые начинаются с http://examplevideo.com/watch/
, автоматически преобразуются во встроенное видео.
Пример 2: Добавление провайдера с использованием регулярного выражения
Если провайдер использует сложные URL или поддерживает несколько вариантов URL, может быть полезно применить регулярные выражения. Например, для сайта streamingsite.com
все видео находятся по URL в формате https://streamingsite.com/watch?v=*
и https://streamingsite.com/show?v=*
. Конечная точка oEmbed для этого сайта — https://streamingsite.com/api/oembed
.
Используем регулярное выражение для покрытия обеих схем URL:
add_action( 'init', 'streamingsite_oembed_provider' );
function streamingsite_oembed_provider() {
wp_oembed_add_provider( '#https?://streamingsite\.com/(watch|show)\?v=.*#i', 'https://streamingsite.com/api/oembed', true );
}
Этот код будет распознавать оба типа URL и корректно встраивать видео в контент.
Пример 3: Регистрация кастомного oEmbed провайдера для образовательного ресурса
Предположим, что образовательный сайт teachhub.com
позволяет встраивать страницы курсов в формате oEmbed. Формат ссылок выглядит как https://teachhub.com/course/*
, а API конечной точки oEmbed — https://teachhub.com/api/oembed
.
Чтобы добавить поддержку для этого сайта, используем следующий код:
add_action( 'init', 'teachhub_oembed_provider' );
function teachhub_oembed_provider() {
wp_oembed_add_provider( 'https://teachhub.com/course/*', 'https://teachhub.com/api/oembed', false );
}
Теперь при вставке ссылки на курс вида https://teachhub.com/course/12345
, WordPress автоматически встроит соответствующий контент.
Пример 4: Отключение существующего oEmbed провайдера
Если вам нужно отключить стандартный oEmbed провайдер для определенного сайта (например, YouTube, который по умолчанию уже зарегистрирован в WordPress), это можно сделать с помощью следующего кода:
remove_action( 'wp_oembed_add_provider', 'youtube_oembed_provider' );
Этот код уберет встроенную поддержку YouTube и позволит, например, использовать свой собственный провайдер для обработки YouTube-ссылок.
Заключение
Функция wp_oembed_add_provider()
делает процесс добавления кастомных oEmbed провайдеров в WordPress быстрым и удобным. Она полезна для интеграции внешнего контента с сайтов, которые поддерживают формат oEmbed, предоставляя гибкие возможности для встраивания медиа в посты и страницы.