Làm cách nào để bọc video được nhúng oEmbed trong các thẻ DIV bên trong the_content?


9

Tôi đang tạo một Wordpress Theme cho một trang web với các video hướng dẫn. Tôi muốn đặt video được nhúng trong nội dung (với oEmbed ) trong một div riêng biệt.

Một ví dụ

Toàn bộ nội dung (đầu ra từ the_content()) là như thế này:

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

Và tôi muốn có được điều này:

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

Tôi đã cố gắng phân tách nó thông qua một regex, nhưng nó đã trở thành một mớ hỗn độn.

Câu trả lời:


16

Bộ embed_oembed_htmllọc chạy trước khi HTML của tài nguyên oEmbed được xuất ra, do đó bạn có thể nối vào phần này và bọc đầu ra divnhư bên dưới. Tôi không thể nghĩ ra một cách đơn giản để gói nội dung khác.

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

Nếu bạn đang cố sử dụng oEmbed trong mẫu chủ đề Wordpress của mình, hãy thử điều này:

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

Đoạn mã này sẽ hiển thị video từ Vimeo.com trực tiếp trong chủ đề của bạn mà không phải tạo bài đăng thủ công.


Các video được nhúng trong bài viết. Đó là vấn đề.
Ties
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.