WP Oembed 未通过“autoplay=1”;多变的
我有这个问题。
我通过自定义字段此处
(注意“autoplay=1”)
但是当我使用wp_oembed_get
在我的主题上加载视频时......它显示视频正常,但它不听自动播放=1
我正在传递的变量。
我需要在页面加载时播放视频。
I'm having this problem.
I am passing this through a custom field here
(notice the "autoplay=1")
But when I load the video on my theme using wp_oembed_get
... it displays the video fine, but it does not listen to the autoplay=1
variable I am passing through.
I need the videos to play on the load of the page.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我认为做到这一点的方法是使用 WordPress 过滤器:
I think the way to do it is using wordpress filters:
这是我在functions.php中的解决方案
享受吧!
This is my solution in functions.php
Enjoy!
查找函数 wp_oembed_get 并使用参数传递自动播放...应该可以正常工作。只需粘贴视频的 url,而不是 &autoplay...您将把它编码到函数的 args 部分中。
look up function wp_oembed_get and use the args to pass the autoplay... should work fine. Just paste in the url of the video not the &autoplay... you'll code that into the args part of the function.
因此,经过对此进行一些研究后,最好的方法是利用
oembed_fetch_url
过滤器挂钩向 oEmbed 请求 URL 添加额外的参数。我的具体目标是允许自动播放参数,但此方法的构建是为了轻松适应您需要的任何 oEmbed 参数。首先,将其添加到您的
functions.php
中:该函数采用生成的 oEmbed URL 及其相应的参数,并再次检查白名单参数的硬编码列表,在本例中为
['autoplay ']
。如果它在传递给 oEmbed 过滤器的参数中看到任何白名单关键字,则会将它们及其给定值添加到 oEmbed URL 中。然后,您需要做的就是将 oEmbed 参数添加到 Wordpress 编辑器中的短代码中,如下所示:
请注意,WP 中的 oEmbed 类使用 postmeta 作为这些请求的缓存,因此如果您已嵌入目标 URL在此之前,您可能必须以某种方式清除 postmeta 缓存,或者向目标 URL 添加某种缓存破坏器。如果链接在缓存中,则过滤器挂钩将永远不会运行。
我希望这是有道理的,因为我觉得这是一个非常有用的功能,但很难弄清楚如何实现。
So, after some research on this, the best way to do this is to leverage the
oembed_fetch_url
filter hook to add extra arguments to the oEmbed request URL. My specific goal was to allow an autoplay paramater, but this method is built to be easy to tailor to any oEmbed argument you need.First, add this to your
functions.php
:This function takes the generated oEmbed URL and its corresponding arguments and checks it agains a hard-coded list of whitelisted arguments, in this case
['autoplay']
. If it sees any of these whitelisted keywords in the arguments passed to the oEmbed filter, it adds them with their given value to the oEmbed URL.Then, all you need to do is add the oEmbed parameter to your shortcode in the Wordpress editor, like this:
Be aware that the oEmbed class in WP uses the postmeta as a cache for these requests, so if you've embedded the target URL before, you might have to clear your postmeta cache in some way or add a cache buster of some kind to the target URL. If the link is in the cache, the filter hook will never get to run.
I hope this makes sense, as I feel like it's a pretty useful feature that's surprisingly hard to figure out how to achieve.
通过将 wp-includes/media.php 中的 wp_oembed_get() 函数修改为:
This can be easily fixed by modifying the wp_oembed_get() function in wp-includes/media.php to this: