Функция wp_oembed_get()
в WordPress позволяет встроить содержимое с внешних сайтов (например, видео YouTube или посты Twitter) с использованием технологии oEmbed. Она запрашивает у поставщика контента HTML-код для встраивания по переданному URL.
Примечание: функция
wp_oembed_get()
не кэширует результат. Для кэширования можно использовать объектWP_Embed
.
wp_oembed_get( string $url, array|string $args = '' ): string|false
Параметры:
- $url (строка, обязательный): URL-адрес контента, который нужно встроить.
- $args (массив|строка, необязательный): Дополнительные параметры, такие как ширина (width) и высота (height) встраиваемого элемента.
width
(целое число|строка): Максимальная ширина встроенного элемента.height
(целое число|строка): Максимальная высота встроенного элемента.discover
(булево): Указывает, следует ли пытаться обнаружить теги link на указанном URL для определения oEmbed-поставщика. По умолчаниюtrue
.
Возвращает: Строка с HTML-кодом для встраивания контента на успехе или false
на неудаче.
Пример 1. Встраивание видео с YouTube
Этот пример показывает, как встроить видео с YouTube без дополнительных параметров. Функция автоматически получит HTML-код для вставки:
$embed_code = wp_oembed_get( 'https://www.youtube.com/watch?v=Jk8HzJm4wR4' );
if ( $embed_code ) {
echo $embed_code;
} else {
echo 'Не удалось получить код встраивания.';
}
Результат:
<iframe width="500" height="281" src="https://www.youtube.com/embed/Jk8HzJm4wR4?feature=oembed" frameborder="0" allowfullscreen></iframe>
Пример 2. Встраивание с указанием параметров (ширина)
В следующем примере указана максимальная ширина встроенного видео в 400 пикселей:
$embed_code = wp_oembed_get( 'https://www.youtube.com/watch?v=Jk8HzJm4wR4', array( 'width' => 400 ) );
if ( $embed_code ) {
echo $embed_code;
} else {
echo 'Не удалось получить код встраивания.';
}
Результат:
<iframe width="400" height="225" src="https://www.youtube.com/embed/Jk8HzJm4wR4?feature=oembed" frameborder="0" allowfullscreen></iframe>
Пример 3. Использование альтернативного поставщика oEmbed
Можно также встраивать содержимое с других платформ, поддерживаемых oEmbed. Например, встроим публикацию из Twitter:
$embed_code = wp_oembed_get( 'https://twitter.com/example/status/1234567890' );
if ( $embed_code ) {
echo $embed_code;
} else {
echo 'Не удалось получить код встраивания.';
}
Пример 4. Управление параметром discover
По умолчанию функция wp_oembed_get()
ищет oEmbed-поставщика по мета-тегам на целевой странице. Это поведение можно отключить, если задать discover
значение false
:
$embed_code = wp_oembed_get( 'https://example.com/custom-content', array( 'discover' => false ) );
if ( $embed_code ) {
echo $embed_code;
} else {
echo 'Не удалось найти oEmbed-поставщика для данного URL.';
}
Пример 5. Встраивание с кэшированием (через объект WP_Embed
)
Чтобы кэшировать результат, можно использовать глобальный объект $wp_embed
, который предоставляет метод autoembed
. Это может быть полезно при многократном вызове одного и того же встроенного контента:
global $wp_embed;
echo $wp_embed->autoembed( 'https://www.youtube.com/watch?v=Jk8HzJm4wR4' );
Заключение
Функция wp_oembed_get()
упрощает интеграцию внешнего мультимедийного контента на страницы WordPress, позволяя разработчикам легко вставлять видео, аудио, публикации и другой контент из множества поддерживаемых поставщиков oEmbed.