How add class youtube and type/html to oembed code?

How can i add :

class="youtube-player" type="text/html"

to iframe like :

 function Oembed_youtube_no_title($html,$url,$args){
    $url_string = parse_url($url, PHP_URL_QUERY);
    parse_str($url_string, $id);
    if (isset($id['v'])) {
        return '<iframe class="youtube-player" type="text/html" src="https://www.youtube.com/embed/' .$id['v'].'?vq=large&autohide=1&autoplay=1&fs=1&hl=fr&rel=0&loop=1" frameborder="0" allowfullscreen></iframe>';
    }
    return $html;
}

Related posts

2 comments

  1. You can try this:

    add_filter( 'embed_oembed_html', 'custom_youtube_oembed' );
    function custom_youtube_oembed( $code ){
        if( stripos( $code, 'youtube.com' ) !== FALSE && stripos( $code, 'iframe' ) !== FALSE )
            $code = str_replace( '<iframe', '<iframe class="youtube-player" type="text/html" ', $code );
    
        return $code;
    }
    

    to target the YouTube oembed HTML output.

    When I embed this YouTube link (Kraftwerk) into the post content

    http://youtu.be/VXa9tXcMhXQ
    

    I get this HTML output:

    <iframe class="youtube-player" type="text/html"  
            width="625" height="469" 
            src="http://www.youtube.com/embed/VXa9tXcMhXQ?feature=oembed" 
            frameborder="0" allowfullscreen></iframe>
    

    with the above filter.

  2. Just to add to birgire’s solution above, if you want to also get rid of the width and height so that you can fully control the css, adding this worked for me:

     $code = str_replace( 'width="640"', '', $code );
     $code = str_replace( 'height="360"', '', $code );
    

    Not sure this won’t cause other problems, but tested and seems to work.

Comments are closed.