当oEmed失败时,显示另一个

时间:2015-04-05 作者:Bob Easton

我想指定oEmbed失败时将显示的替代图像。

具体用例是在中国(或其他国家)屏蔽YouTube时提供一种替代方案。我们知道YouTube的内容在那里是不可用的,但我们希望在这种情况下提供另一种图像。

是否可以为此目的访问oEmbed错误代码?

2 个回复
SO网友:Daron Spence

我认为在这种情况下最好的做法是用div 然后使用CSS显示备用图像background-image 所有物如果加载视频,则嵌入的内容将覆盖背景图像。

您可以使用embed_oembed_html 滤器

add_filter(\'embed_oembed_html\', \'your_function_here\');
如果您担心加载额外的元素,那么可以使用JS进行客户端检查,查看是否加载了oEmbed,如果没有加载,则将背景图像加载到包装器中。

通过为每个视频添加自定义字段,您可能会变得更加复杂,但这基本上就是它的要点。

SO网友:codecowboy

一种方法可能是通过基于中国的代理在服务器端使用oEmbed发出另一个请求。

这样,您就可以提前知道对客户端上资源的调用是否会失败。在页面请求的早期,您可以确定客户端IP的地理位置,通过代理对资源(如youtube)进行服务器端调用,然后利用您可能会遇到的oEmbed错误。

你可以看看Wonderproxy 为了实现这一目标(我与他们没有关系,但我听到了好消息)

结束

相关推荐

如何将POST中的oEmbeded URL替换为实际的嵌入的HTML

我想要的是将推特oEmbed系统的输出输入到我的实际帖子中。IMHO嵌入输出本身是高质量的语义HTML,我宁愿将其放在帖子中,也不要放在嵌入元数据中,以防js停止工作(在这种情况下,推特将显示为合理的blockquote)。因此,我需要的是劫持oEmbed系统,并在处理后,将帖子中的嵌入URL替换为来自Twitter的HTML。显然,该解决方案还应该能够处理其他类型的嵌入。更新:我只是想澄清一下,我知道oEmbed在默认情况下是如何工作的(即,当对帖子内容运行“the\\u content”过滤器时,UR