it-swarm.com.de

Wenn oEmbed fehlschlägt, zeigen Sie eine Alternative an

Ich möchte ein alternatives Bild angeben, das angezeigt wird, wenn oEmbed fehlschlägt.

Der spezielle Anwendungsfall besteht darin, eine Alternative anzubieten, wenn China (oder andere Länder) YouTube blockieren. Wir wissen, dass der YouTube-Inhalt dort nicht verfügbar ist, möchten aber in diesem Fall ein alternatives Bild bereitstellen.

Kann der oEmbed-Fehlercode zu diesem Zweck zugänglich gemacht werden?

8
Bob Easton

Ich denke, das Beste, was Sie in diesem Fall tun können, ist, Ihren oEmbed-Inhalt mit einem divzu umschließen, bevor er gerendert wird, und dann ein alternatives Bild mit der CSS-Eigenschaft background-image anzuzeigen. Wenn das Video geladen wird, bedeckt der eingebettete Inhalt das Hintergrundbild.

Sie können den Wrapper mithilfe des Filters embed_oembed_html hinzufügen.

add_filter('embed_oembed_html', 'your_function_here');

Wenn Sie Bedenken haben, zusätzliche Elemente zu laden, können Sie clientseitig mit JS prüfen, ob das oEmbed geladen ist, und, falls nicht, ein Hintergrundbild in den Wrapper laden.

Sie könnten noch viel komplizierter werden, wenn Sie für jedes Video benutzerdefinierte Felder hinzufügen, aber das ist im Wesentlichen das Wesentliche.

1
Daron Spence

Ein Ansatz könnte darin bestehen, eine weitere Anfrage mithilfe von oEmbed auf der Serverseite über einen Proxy mit Sitz in China zu stellen.

Auf diese Weise wissen Sie im Voraus, ob der Aufruf der Ressource auf dem Client fehlschlagen wird. Zu Beginn der Seitenanforderung können Sie feststellen, wo sich die IP-Adresse des Clients geografisch befindet, einen serverseitigen Anruf über einen Proxy an die Ressource, z. B. YouTube, tätigen und dann den zu erwartenden OEmbed-Fehler nutzen.

Sie könnten einen Blick auf Wonderproxy werfen, um dies zu erreichen (ich bin nicht mit ihnen verbunden, aber höre gute Dinge)

0
codecowboy