Встраивание screencast.com Видео в мультисайте WordPress


У меня запущена многоузловая установка WP 3.5.1, и я хотел бы, чтобы пользователи могли встраивать screencast.com видео в посты, желательно с шорткодом, как вы делаете с YouTube или Vimeo.

Я могу сделать это, используя полный код встраивания из screencast.com меню общего доступа, но я могу сделать это только как суперадминистратор. У всех остальных пользователей есть и теги, удаленные из их сообщений. Я могу обойти это, установив плагин Нефильтрованный MU, но это не идеально, так как позволяет пользователям размещать в своих сообщениях всевозможные ненадежные коды/теги.

Я довольно долго искал какой-нибудь простой плагин и наткнулся на этот Screencast.com Встраиватель видео это кажется идеей, но он не обновлялся уже 2 года.

Поэтому мне интересно, есть ли какие-либо другие решения, которые могли бы сработать для этого.

Author: kaiser, 2013-03-20

2 answers

Screencast.com имеет специальную страницу на GitHub с полным набором учебных пособий (нет необходимости клонировать их здесь).

Затем вы можете использовать wp_oembed_get() или зарегистрировать нового поставщика с помощью wp_oembed_add_provider().

echo wp_oembed_get( 'http://example.com', array( 
    'width'  => 1920,
    'height' => 1080
) );

Или добавьте поставщика:

wp_oembed_add_provider(
    'http://screencast.com/*', // The Format
    'http://screencast.com/',  // The Provider
    FALSE                      // Is the first argument not a wildcard but a Regex?
);

Имейте в виду, что некоторые поставщики заставят вас получить ключ API для выполнения успешных запросов. Хорошие раздают некоторые для тестирования и разработки.

Чтобы изменить разметку, есть obembed_dataparse фильтр, который вы можете использовать.

add_filter( 'oembed_dataparse', 'wpse_91680_oembed_markup', 10, 3 );
function wpse_91680_oembed_markup( $html, $data, $url )
{
    if ( is_int( strpos( $url, 'screencast.com' ) ) )
    {
        // $data might hold interesting stuff for you
        # echo htmlspecialchars( var_export( $data, true ) );

        // $html will be FALSE for every $data->type that 
        // is not 'photo', 'video', 'rich' or 'link'
        // so you need to pre-process the $data object and build your markup here
        return "<br /> And some special appendix";
    }

    return $html;
}
 2
Author: kaiser, 2015-10-07 13:22:52

Не уверен, поможет ли вам это, но я просто просматривал некоторые другие блоги и нашел предложение попробовать Embed.ly плагин. В нем есть API, который вы можете зарегистрировать бесплатно, и сотни поставщиков мультимедиа (включая скринкаст, который вы должны включить из встраивания.настройки ly после установки). После этого просто зайдите на HTML-страницу страницы/публикации и вставьте только URL-адрес из скринкаста (или другого) и альта! Это сработало отлично, и мои горячие точки тоже работают. Я думаю, что у них есть API, который принимает URL-адрес и предоставляет код встраивания в фоновом режиме. Я сообщу, исчезнет мой код или нет.

Удачи!

 0
Author: Gary M., 2013-03-27 01:41:02