Запуск видео по удалённой команде в WordPress

В некоторых проектах на WordPress возникает необходимость запускать воспроизведение видео по удалённой команде или событию. Это полезно, например, для синхронизации видео с внешними процессами, интерактивных презентаций или управления плеером через API. В этом материале мы разберём, как реализовать такую функциональность без сторонних сервисов, используя нативные возможности WordPress, JavaScript и REST API.

Почему важен запуск видео по удалённой команде

В стандартной ситуации видео на сайте начинают воспроизводиться при взаимодействии пользователя — клике, скролле или автозапуске. Однако в некоторых сценариях требуется запускать видео по команде, которая приходит с сервера или другого пользователя. Например, при проведении вебинаров, онлайн-курсов, интерактивных видео презентаций, когда важно синхронизировать начало видео с внешним событием.

Без реализации удалённого управления плеером вы ограничены классическим управлением, что снижает интерактивность и гибкость сайта. Поэтому давайте посмотрим, как можно реализовать запуск видео по удалённой команде на WordPress.

Использование REST API WordPress для получения команды запуска

Первый шаг — создать конечную точку REST API, которая будет возвращать состояние запуска видео. Так мы можем имитировать удалённую команду, которую клиент будет опрашивать.

Создаём REST API endpoint

Добавьте в functions.php вашей темы или в кастомный плагин следующий код:

add_action('rest_api_init', function () {
    register_rest_route('omni-video/v1', '/play-command', array(
        'methods' => 'GET',
        'callback' => 'omni_video_get_play_command',
    ));
});

function omni_video_get_play_command() {
    // Здесь можно реализовать логику проверки внешних условий
    // Для теста просто возвращаем true
    return rest_ensure_response(array('play' => true));
}

Этот endpoint доступен по адресу /wp-json/omni-video/v1/play-command и возвращает JSON с ключом play.

JavaScript для опроса сервера и запуска видео

Теперь на стороне клиента нужно периодически опрашивать наш endpoint и запускать видео, если команда пришла.

Пример скрипта

document.addEventListener('DOMContentLoaded', function () {
    const video = document.querySelector('video#omni-video-player');
    if (!video) return;

    async function checkPlayCommand() {
        try {
            const response = await fetch('/wp-json/omni-video/v1/play-command');
            const data = await response.json();
            if (data.play && video.paused) {
                video.play();
            }
        } catch (error) {
            console.error('Ошибка при запросе play-команды:', error);
        }
    }

    // Проверяем команду каждые 3 секунды
    setInterval(checkPlayCommand, 3000);
});

В этом примере видео с id omni-video-player будет запускаться автоматически, когда сервер отдаст {"play": true}.

Добавление видео на страницу

Для примера добавим видео в шаблон или через редактор с нужным id:

<video id="omni-video-player" width="640" height="360" controls preload="metadata">
    <source src="https://example.com/video.mp4" type="video/mp4">
    Ваш браузер не поддерживает видео.
</video>

Обязательно указывайте id, чтобы скрипт мог найти нужный элемент.

Расширение функционала: запуск и пауза по командам

Можно расширить API и клиент, чтобы поддерживать не только запуск, но и паузу, перемотку или смену видео. Для этого изменим endpoint и добавим в ответ поле action с возможными значениями play, pause, stop и т.д.

function omni_video_get_play_command() {
    // Логика выбора команды
    return rest_ensure_response(array('action' => 'play'));
}

И на клиенте:

switch(data.action) {
    case 'play':
        if (video.paused) video.play();
        break;
    case 'pause':
        if (!video.paused) video.pause();
        break;
    case 'stop':
        video.pause();
        video.currentTime = 0;
        break;
}

Практические советы и рекомендации

  • Используйте nonce и проверку прав в REST API, если команда должна быть защищена.
  • Не злоупотребляйте частым опросом, чтобы не создавать нагрузку на сервер.
  • Для более сложных сценариев рассмотрите WebSocket-соединения, например, через библиотеку Ratchet и плагин WP WebSockets.
  • Проверяйте поддержку автозапуска видео в браузерах: некоторые блокируют запуск без взаимодействия пользователя.

Интеграция с плагином OmniVideo для WordPress

Если вы используете плагин OmniVideo, то данную логику можно встроить в кастомные шаблоны плеера, используя встроенные хуки и API плагина для расширения функционала.

Например, можно добавить собственный JavaScript через настройки плагина, который будет реализовывать описанный механизм запуска видео по удалённой команде.

Заключение

Запуск видео по удалённой команде в WordPress — задача, решаемая с помощью REST API и клиентского JavaScript. Такой подход даёт гибкость и расширяемость для интерактивных видео проектов. Используйте приведённые примеры как базу для своих решений и адаптируйте их под конкретные задачи.

Как создать настраиваемый видео плейлист в WordPress
25.11.2025
Как установить автоматическую проверку видео на плагиат в WordPress
27.02.2026
Как настроить отложенный запуск видео в WooCommerce
25.04.2026
Как создать собственный шорткод для видео в WordPress
21.11.2025
Как настроить автоматический видео транскрипт в WordPress с плагином OmniVideo
13.03.2026