Как обернуть внедренное видео oEmbed в теги DIV внутри the_content?

9

Я делаю тему Wordpress для веб-сайта с видеоуроками. Я хотел бы поместить видео, которое встроено в контент (с oEmbed ) в отдельный div.

Пример

Полный контент (вывод из the_content()) выглядит примерно так:

<p><iframe src="http://player.vimeo.com/video/0000000" width="900" height="506" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p>
<p>This is an Test of a tutorial. Bla bla bla</p>

И я хотел бы получить это:

<div id="video">
<iframe src="http://player.vimeo.com/video/0000000" width="900" height="506" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
</div>
<div id="content">
<p>This is an Test of a tutorial. Bla bla bla</p>
</div>
связи
источник
Я пытался разделить его с помощью регулярных выражений, но это стало беспорядком.

Ответы:

16

В embed_oembed_htmlфильтре работает до HTML - ресурса oEmbed является выводимым, так что вы можете подключить к этому и обернуть выход в , divкак показано ниже. Я не могу придумать простой способ обернуть другой контент.

add_filter('embed_oembed_html', 'my_embed_oembed_html', 99, 4);
function my_embed_oembed_html($html, $url, $attr, $post_id) {
  return '<div id="video">' . $html . '</div>';
}
Ричард М
источник
-3

Если вы пытаетесь использовать oEmbed в шаблоне темы Wordpress, попробуйте это:

<aside>
    <p>oEmbed video in template test</p>
    <?php echo apply_filters('the_content', "http://vimeo.com/41205967"); ?>
</aside>

Этот фрагмент покажет видео с Vimeo.com прямо в вашей теме, не создавая пост вручную.

Пол Венцель
источник
Видео встроены в посты. Это была проблема.
Галстуки