Как я могу удалить первое видео из сообщения и использовать его?

Я пытаюсь разработать тему, в которой, когда вы выбираете формат сообщения «видео», он автоматически получает первое видео с сообщения и показывает его (вместо того, где обычно будет отображаться изображение), похожее на то, как «Divi», тема работы Elegant Themes. Мне удалось выполнить фактическое извлечение кода для встраивания видео и его копирование в функциональный слот, однако для этого мне необходимо удалить первое видео из самого содержимого сообщения, иначе я получу 2 одинаковых видео на страница, одна в выделенной области и одна в верхней части содержимого сообщения.

То, что я хотел бы узнать, это:

  1. Каков самый простой способ сделать первое видео с записью «видео» автоматически включенной?

  2. Как только видео будет показано, как вы можете удалить видео из постсоциального контента, не допуская, чтобы одно и то же видео было дважды размещено на странице?

Это должно работать со всеми видео-записями от youtube, vimeo, dailymotion и т. Д. И самостоятельно размещенного видео.

EDIT: Вот код, который у меня есть. Это несколько функций, которые включают в себя первое встраивание видео и возвращают встроенный код видео в функцию. Вторая функция удаляет первое видео, но только для коротких кодов «видео». Я пытаюсь понять, как это сделать для встроенных видео.

function get_video_link(){ $first_video = ''; $custom_fields = get_post_custom(); foreach ( $custom_fields as $key => $custom_field ) { if ( strpos( $key, '_oembed_' ) !== 0 ) { continue; } $first_video = $custom_field[0]; $first_video = wrap_embed_html($first_video); break; } if ( $first_video === '' && has_shortcode( get_the_content(), 'video' ) ) { $regex = get_shortcode_regex(); preg_match( "/{$regex}/s", get_the_content(), $match ); add_filter('the_content', 'et_delete_post_video_shortcode'); $first_video = wrap_embed_html(do_shortcode($match[0])); } return ( $first_video !== '' ) ? $first_video : false; } function et_delete_post_video_shortcode( $content ) { if ( has_post_format( 'video' ) ) : $regex = get_shortcode_regex(); preg_match_all( "/{$regex}/s", $content, $matches ); // $matches[2] holds an array of shortcodes names in the post foreach ( $matches[2] as $key => $shortcode_match ) { if ( 'video' === $shortcode_match ) { $content = str_replace( $matches[0][$key], '', $content ); } } endif; return $content; } 

Solutions Collecting From Web of "Как я могу удалить первое видео из сообщения и использовать его?"