Intereting Posts
изменяет размеры изображений на лету Как получить статус публикации доступных сообщений? Исключить идентификатор сообщения из wp_query Если тип сообщения равен, то отобразите содержимое X Интегрировать API-интерфейс фидов продуктов в Woocommerce Как удалить "justifyfull" в TinyMCE Плагин Shopp Удалить количество Dropdown Использование настраиваемого значения поля в качестве текущего имени пользователя Есть ли способ переопределить «перерывы комментариев на страницы» и «закрыть комментарии для старых сообщений» на определенных должностях, но не на других? Может ли кто-нибудь объяснить использование esc_html? Определить структуру Permalink по почте и странице Правило перезаписи Nginx противоречит правилу permalinks WordPress Получить количество комментариев на странице В WooCommerce фильтруйте доступные способы оплаты по роли пользователя Страница расписания / CPT

Настроить ли видеосодержимое страницу из подкаталога загрузки?

Мой вопрос вчера был слишком широким по этому вопросу, поэтому я буду конкретным:

Я преподаю музыкальные классы, и в конце класса мы записываем несколько коротких (30 секунд-3 минут) видеороликов для тех частей, которые люди изучают. До сих пор я напрямую загружал все эти видео в сетевое хранилище (NAS). У моих учеников есть доступ. Это отлично работает для меня, но для студентов это сложно, потому что им нужно загружать каждое видео вручную, а затем играть со своего компьютера.

В нашей школе есть сайт WordPress, и я хочу, чтобы вы могли отправлять учеников на страницу с защитой паролем, где они вошли в систему и представлены несколькими папками (папкой для каждой песни). Когда они открывают папку, она выводит их на страницу, на которой отображаются все видео, и пользователи могут нажимать на видео и воспроизводить их непосредственно из браузера.

Я загрузил приложение WordPress iPhone и попытался:

  1. Создать страницу.
  2. Выберите видео с телефона
  3. Загрузить на страницу
  4. публиковать.

Такие работы, но каждое другое видео дает мне ошибку при загрузке (IE, я думаю, что они слишком большие и тайм-аут), и это очень трудоемко.

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

Я загрузил «Media File Manager», но это не работает, потому что вы должны сначала загрузить файлы в библиотеку, а затем перенести файлы вручную во вложенные папки.

Итак, есть подробности. Теперь мой вопрос:

Есть ли способ:

  1. Ppload отдельных видео в подпапки в папке загрузки (я могу создать подпапки с моим FTP) (я уже знаю, как это сделать.)
  2. Имейте отдельные страницы, которые обрабатывают эти подпапки как отдельные галереи.
  3. Отобразите на странице все элементы галереи (в качестве воспроизводимых видео).

Возможно, нет необходимости добавлять файлы в библиотеку. Мы можем просто сканировать данную папку и печатать теги <video> со всеми видеофайлами, которые мы находим.

Если требуется пароль, я предоставляю подписчикам учетные записи пользователям и представляю содержимое в бэкэнд. В каждом профиле пользователя администратор может выбрать папки, к которым у них будет доступ .

Вот доказательство концепции, предполагающее, что:

  • Мы загружаем вручную в подпапки внутри wp-content/videos/ .

  • Пользователь имеет доступ к wp-content/videos/chapter1/ и wp-content/videos/chapter2/ .

  • Обнаружено некоторое решение для предотвращения внешнего доступа к этой папке / файлам.

 <?php /* Plugin Name: Video Page for Subscribers */ add_action( 'admin_menu', 'admin_menu_wpse_114998' ); # Custom admin page function admin_menu_wpse_114998() { add_dashboard_page( 'Video Library', 'Video Library', 'read', // visible to Subscribers 'video-library', 'menu_callback_wpse_114998' ); } # Print the admin page function menu_callback_wpse_114998() { $paths = user_folders_wpse_114998( get_current_user_id() ); foreach( $paths as $path ) print_video_folder_wpse_114998( $path ); } # Get the user's allowed folders function user_folders_wpse_114998( $user_id ) { // $user_folders = do_your_thing_to_get_it(); $user_folders = array( 'chapter1', 'chapter2' ); return $user_folders; } # Iterate through a directory and print all MP4 videos function print_video_folder_wpse_114998( $folder ) { $path = WP_CONTENT_DIR . '/videos/' . $folder; $files = array(); $directory = new RecursiveDirectoryIterator( $path ); $objects = new RecursiveIteratorIterator( $directory, RecursiveIteratorIterator::SELF_FIRST ); foreach( $objects as $name => $fileinfo ) { if ( !$fileinfo->isFile() ) continue; if( false === strpos( $name,'.mp4' ) ) continue; $files[] = array( 'url' => WP_CONTENT_URL . "/videos/$folder/" . $fileinfo->getFilename(), 'name' => $fileinfo->getFilename() ); } foreach( $files as $file ) { ?> <div style="margin:25px 25%;background-color:#cecece;text-align:center"> <h2><?php echo $file['name']; ?></h2> <video src="<?php echo $file['url']; ?>" controls> Your browser does not support the <code>video</code> element. </video> </div> <?php } } 

введите описание изображения здесь