¿Cómo envolver el video incrustado oEmbed en etiquetas DIV dentro del_contenido?

9

Estoy haciendo un tema de Wordpress para un sitio web con video tutoriales. Me gustaría poner el video que está incrustado en el contenido (con oEmbed ) en un div aparte.

Un ejemplo

El contenido completo (salida de the_content()) es algo como esto:

<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>

Y me gustaría hacer esto para:

<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>
Corbatas
fuente
He tratado de dividirlo a través de una expresión regular, pero se convirtió en un desastre.

Respuestas:

16

El embed_oembed_htmlfiltro se ejecuta antes de que se genere el HTML de un recurso oEmbed, por lo que puede conectarlo y ajustar la salida de la divsiguiente manera. No puedo pensar en una forma simple de envolver el otro contenido.

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>';
}
Richard M
fuente
-3

Si está intentando usar oEmbed en su plantilla de tema de Wordpress, intente esto:

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

Este fragmento mostrará un video de Vimeo.com directamente en su tema, sin tener que crear una publicación manualmente.

Paul Wenzel
fuente
Los videos están incrustados en publicaciones. Ese fue el problema.
Corbatas