Вопрос или проблема
Я пытаюсь добавить некоторые параметры oembed к моим клипам на Vimeo. Я пробовал сделать это, используя следующие две инструкции:
- Передача параметров ссылке на Vimeo в поле настройки WordPress – LimeCanvas.com
- Способ использовать собственный параметр для вставки YouTube без использования iframe – WordPress.SE.com
К сожалению, то, что работает для YouTube, не работает для Vimeo, так как возвращаемый URL не содержит строки ?feature=oembed
, с которой я мог бы использовать str_replace
. В конце URL-адреса только id видео, который является случайным. Я могу сделать это, если введу точный ID клипа, чтобы str_replace
искал его.
Есть идеи, как сделать так, чтобы функция искала числа и прикрепляла параметры? Пример клипа будет
http://vimeo.com/14956293
и oEmbed должен быть
//player.vimeo.com/video/14956293?color=FFFFFF&title=0&byline=0.
Как видно здесь, есть еще одно отличие от YouTube. Аргументы начинаются с ? и соединяются с помощью &
. В то время как YouTube начинается с &
и также соединяет аргументы с &
.
Вы должны добавить фильтр на провайдера oembed для разрешения пользовательских параметров:
add_filter( 'oembed_fetch_url', 'my_oembed_fetch_url', 10, 3 );
function my_oembed_fetch_url( $provider, $url, $args ) {
// Вы можете найти список стандартных провайдеров в WP_oEmbed::__construct()
if ( strpos( $provider, 'vimeo.com' ) !== false) {
// Полный список аргументов здесь: https://developer.vimeo.com/apis/oembed
if ( isset( $args['autoplay'] ) ) {
$provider = add_query_arg( 'autoplay', absint( $args['autoplay'] ), $provider );
}
if ( isset( $args['color'] ) && preg_match( '/^[a-f0-9]{6}$/i', $args['color'] ) ) {
$provider = add_query_arg( 'color', $args['color'], $provider );
}
if ( isset( $args['portrait'] ) ) {
$provider = add_query_arg( 'portrait', absint( $args['portrait'] ), $provider );
}
if ( isset( $args['title'] ) ) {
$provider = add_query_arg( 'title', absint( $args['title'] ), $provider );
}
if ( isset( $args['byline'] ) ) {
$provider = add_query_arg( 'byline', absint( $args['byline'] ), $provider );
}
}
return $provider;
}
затем, в вашем шаблоне:
<?php wp_oembed_get('http://vimeo.com/44633289', array('color' => '7AB800')); ?>
или через шорткод в содержании поста:
[vimeo 44633289 color=7AB800]
и вы можете сделать то же самое для YouTube и всех остальных провайдеров oembed (если ваш my_oembed_fetch_url
позволяет это)
.
Ответ или решение
Чтобы использовать пользовательские параметры для встраивания Vimeo видео без использования
Шаги по добавлению пользовательских параметров к Vimeo oEmbed:
Шаг 1: Настройка фильтра в WordPress
-
Добавьте фильтр
oembed_fetch_url
:В файлах вашей темы WordPress (например, в
functions.php
) добавьте следующий код:add_filter('oembed_fetch_url', 'my_oembed_fetch_url', 10, 3); function my_oembed_fetch_url($provider, $url, $args) { if (strpos($provider, 'vimeo.com') !== false) { if (isset($args['autoplay'])) { $provider = add_query_arg('autoplay', absint($args['autoplay']), $provider); } if (isset($args['color']) && preg_match('/^[a-f0-9]{6}$/i', $args['color'])) { $provider = add_query_arg('color', $args['color'], $provider); } if (isset($args['portrait'])) { $provider = add_query_arg('portrait', absint($args['portrait']), $provider); } if (isset($args['title'])) { $provider = add_query_arg('title', absint($args['title']), $provider); } if (isset($args['byline'])) { $provider = add_query_arg('byline', absint($args['byline']), $provider); } } return $provider; }
Этот код добавляет проверку для URL-адреса Vimeo и позволяет указать такие параметры, как
autoplay
,color
,portrait
,title
иbyline
. Вы можете кастомизировать список параметров в зависимости от ваших нужд, следуя документации Vimeo оEmbed API.
Шаг 2: Использование функции wp_oembed_get
или шорткода
-
Используйте функцию
wp_oembed_get
:В вашем шаблоне WordPress, вы можете использовать функцию
wp_oembed_get
, чтобы получить видео с нужными параметрами:<?php wp_oembed_get('http://vimeo.com/44633289', array('color' => '7AB800')); ?>
В этом коде вы задаете видео ID и цвет плеера.
-
Используйте шорткод:
В содержимом поста WordPress, вы можете использовать шорткод для задания параметров:
[vimeo 44633289 color=7AB800]
Однако, учтите
- Убедитесь, что ваши параметры соответствуют требованиям и формату, указанному в Vimeo API.
- Функциональность глабона оEmbeds может измениться со временем, поэтому регулярно проверяйте обновления WordPress и API.
Этот подход позволяет управлять параметрами видео в WordPress без необходимости использования
Следуя описанному выше, вы сможете эффективно интегрировать и управлять параметрами встраивания Vimeo в WordPress, улучшая функциональность сайта и меняя его визуальное представление в зависимости от ваших нужд.