Comment envelopper une vidéo intégrée à oEmbed dans des balises DIV à l'intérieur de the_content?


9

Je crée un thème Wordpress pour un site Web avec des didacticiels vidéo. Je voudrais mettre la vidéo qui est intégrée dans le contenu (avec oEmbed ) dans une div à part.

Un exemple

Le contenu complet (sortie de the_content()) est quelque chose comme ceci:

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

Et j'aimerais obtenir ceci:

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

J'ai essayé de le diviser via une expression régulière, mais c'est devenu un gâchis.

Réponses:


16

Le embed_oembed_htmlfiltre s'exécute avant la sortie du code HTML d'une ressource oEmbed, vous pouvez donc vous y connecter et envelopper la sortie dans un divcomme ci-dessous. Je ne peux pas penser à un moyen simple d'envelopper l'autre contenu.

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

Si vous essayez d'utiliser oEmbed dans votre modèle de thème Wordpress, essayez ceci:

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

Cet extrait affichera une vidéo de Vimeo.com directement dans votre thème, sans avoir à créer un article manuellement.


Les vidéos sont intégrées dans les publications. C'était ça le problème.
Liens
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.