0

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

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

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

例如 * 所有 youtube iframe 将是 560x316 * 并且所有其他 iframe 将是其默认尺寸。

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

4

3 回答 3

3

您可以在主题函数 PHP 中的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),请确保您的过滤器具有较低的优先级。

于 2013-01-22T02:47:58.233 回答
2

您可以尝试使用css 属性选择器youtube.com在 src 属性中选择 iframe :

iframe[src*="youtube.com"], 
iframe[src*="youtu.be"] {
    width: 560px !important;
    height: 316px !important;
}
于 2013-01-22T02:44:25.750 回答
0

谢谢大家的帮助

我只是给了jquery一个机会,它奏效了

    $(document).ready(function(){
    $('iframe[src*="youtube.com"]').css({"width":"560px","height":"316px"});
    });
于 2013-01-22T03:03:01.170 回答