Wie kann man ein in Embed eingebettetes Video in DIV-Tags innerhalb des Inhalts einbinden?

9

Ich erstelle ein Wordpress-Theme für eine Website mit Video-Tutorials. Ich möchte das Video, das in den Inhalt eingebettet ist (mit oEmbed ), in ein separates Div einfügen .

Ein Beispiel

Der vollständige Inhalt (Ausgabe von the_content()) ist ungefähr so:

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

Und ich möchte dies dazu bringen:

<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>
Krawatten
quelle
Ich habe versucht, es über einen regulären Ausdruck aufzuteilen, aber es wurde ein Chaos.

Antworten:

16

Der embed_oembed_htmlFilter wird ausgeführt, bevor der HTML-Code einer oEmbed-Ressource ausgegeben wird. Sie können sich also in diesen Filter einbinden und die Ausgabe divwie folgt in a umschließen . Ich kann mir keine einfache Möglichkeit vorstellen, den anderen Inhalt zu verpacken.

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.
quelle
-3

Wenn Sie versuchen, oEmbed in Ihrer Wordpress-Designvorlage zu verwenden, versuchen Sie Folgendes:

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

Dieses Snippet zeigt ein Video von Vimeo.com direkt in Ihrem Thema an, ohne dass Sie manuell einen Beitrag erstellen müssen.

Paul Wenzel
quelle
Die Videos sind in Beiträge eingebettet. Das war das Problem.
Krawatten