Quando oEmbed falhar, exiba uma alternativa

8

Eu quero especificar uma imagem alternativa que será exibida quando o oEmbed falhar.

O caso de uso específico é uma alternativa quando a China (ou outros países) bloqueia o YouTube. Sabemos que o conteúdo do YouTube não estará disponível lá, mas queremos fornecer uma imagem alternativa nesse caso.

O código de erro oEmbed pode ser disponibilizado para esse fim?

    
por Bob Easton 05.04.2015 / 03:53

2 respostas

1

Acho que a melhor coisa a fazer neste caso é envolver o conteúdo do oEmbed com um div antes de serem renderizados e, em seguida, mostrar uma imagem alternativa com a propriedade background-image do CSS. Se o vídeo for carregado, o conteúdo do oEmbed cobrirá a imagem de fundo.

Você pode adicionar o wrapper usando o filtro embed_oembed_html .

add_filter('embed_oembed_html', 'your_function_here');

Se você está preocupado com o carregamento de elementos extras, então você pode fazer uma verificação do lado do cliente com JS para ver se o oEmbed foi carregado e, se não, carregar uma imagem de plano de fundo no wrapper.

Você pode ficar muito mais complicado adicionando campos personalizados para cada vídeo, mas essa é basicamente a essência dele.

    
por Daron Spence 22.07.2015 / 21:08
0

Uma abordagem pode ser fazer outra solicitação usando o oEmbed no lado do servidor por meio de um proxy baseado na China.

Dessa forma, você saberia com antecedência se a chamada para o recurso no cliente falhará. Logo no início da página, você pode verificar onde o IP do cliente está localizado geograficamente, fazer uma chamada do lado do servidor através de um proxy para o recurso, por exemplo, youtube e, em seguida, aproveitar o erro oEmbed que você presumivelmente obterá.

Você pode dar uma olhada em Wonderproxy para conseguir isso (não sou afiliado a eles, mas ouço coisas boas)

    
por codecowboy 17.06.2015 / 09:56

Tags