如何使嵌入的YouTube视频从自定义字段文本响应屏幕大小?

时间:2019-04-04 作者:user2395639

所以我嵌入了一段youtube视频oembed 像这样:

$embed_code = wp_oembed_get(get_field(\'youtube_video\') );
echo $embed_code;
但如何使其响应屏幕大小?在移动设备上观看视频时,视频的宽度比屏幕长,所以我想把它放到html中<video> 所以我可以控制大小,因为把它放在div 没有对它做任何事。但即使使用video 标签似乎不起作用。我这样试过:

<?php
    $video = wp_oembed_get( get_field(\'youtube_video\') );
    echo \'<div>\';
    echo \'<video width="500" controls>\';
    echo \'<source src= "\'.$video.\'" type="video/mp4">\';
    echo \'</video>\';
    echo \'</div>\';
?> 

i forgot to add that the video doesn\'t actually get called. like the <video> html appears but the <source> doesn\'t seem to be working, like a broken link. could this be how i set up the custom field? as the type is set as text and called with oembed

有人有什么建议吗?

1 个回复
SO网友:tmdesigned

欢迎使用WordPress StackExchange。

这实际上是一个HTML/CSS问题,而不是特定于WordPress的问题,因此您将来可以通过发布到另一个StackExchange站点(如Stack Overflow)来获得更快的答案。

但是,如果将百分比设置为宽度,而不是像代码片段中显示的500这样的值进行硬编码,则应该修复问题。

例如,

<iframe width="100%" height="315" src="https://www.youtube.com/embed/yHfLyMAHrQE" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
结果:https://jsfiddle.net/qj6o4t23/

然而,这将总是100%地填满,因此更好的方法可能是在其上也有一个最大宽度,这意味着使用CSS规则而不是HTML属性。

<iframe style="width:100%; max-width: 500px; height: 315px" src="https://www.youtube.com/embed/yHfLyMAHrQE" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
结果:https://jsfiddle.net/qj6o4t23/1/

有了这样的多个规则,您最好遵循在CSS中单独定义样式的最佳实践。

相关推荐

在使用内置菜单函数wp_NAV_MENU()的同时,在菜单元素之前插入PHP

这个词很难说,所以请容忍我。我已经生成了一个wp\\u nav\\u菜单,menu-1,作为主菜单。与基本的b****菜单相比,菜单相当复杂。您可以根据用户是否登录显示和隐藏零件。因此,其中一个导航元素仅在用户登录时显示。它会将“Hi NAME”作为导航项显示。我的任务是将用户头像放在这之前。然而,为了获得用户化身,我需要使用另一个WP函数get\\u avatar()。我在后端的菜单部分看不到可以为特定导航输入代码的区域。我也不能在标题中告诉它wp\\u nav\\u menu()函数的位置。我知道如何