仅在youtube iframe上调整宽度和高度

时间:2013-01-22 02:27:48

标签: php javascript jquery wordpress

如何仅针对所有youtube嵌入对宽度和高度进行调整,因为有一些iframe使用且主要是youtubes

<iframe width="420" height="315" frameborder="0" allowfullscreen="" src="http://www.youtube.com/embed/xbGv2T456dfg3">

此代码嵌入在我的wordpress帖子中,我想仅调整youtube iframe而不是所有iframe的宽度和高度,我可以手动调整,但是当涉及到许多视频时,它将会很长时间。

例如,

*所有youtube iframe将为560x316 *和所有其他iframe将是其默认尺寸。

可以在php中完成吗?对不起我是新的

3 个答案:

答案 0 :(得分:2)

你可以在你的主题函数PHP中创建一个新的filter on the_content,它调用一个函数来搜索和替换像这样的Youtube iframe:

function my_youtube_resizer($content) {
   $dom=new DOMDocument();
   $dom->loadHTML($content);
   $iframess = $dom->getElementsByTagName("iframe");       
   foreach ($iframes as $iframe) {
     $src = $iframe->getAttribute('src');
     if (strpos('youtube.com', $src)) {  //You may have to also deal with the short URL youtu.be
        $iframe->setAttribute('width', '560');
        $iframe->setAttribute('height', '316');
     }
   }
   $content = $dom->saveHTML();
   return $content;
 }

如果您使用其他插件来创建这些iframe链接(例如Jetpack),请确保您的过滤器优先级较低。

答案 1 :(得分:1)

您可以尝试css attribute selectors在src属性中选择youtube.com的iframe:

iframe[src*="youtube.com"], 
iframe[src*="youtu.be"] {
    width: 560px !important;
    height: 316px !important;
}

答案 2 :(得分:0)

感谢大家的帮助

我只是给了jquery一个镜头而且它有用了

    $(document).ready(function(){
    $('iframe[src*="youtube.com"]').css({"width":"560px","height":"316px"});
    });