Ich habe hier ein Problem:
Ich übergebe dies durch ein benutzerdefiniertes Feld: http://www.youtube.com/watch?v=E6P1Q-UycHA&autoplay=1
(beachte das autoplay=1
)
Aber wenn ich das Video mit wp_oembed_get in mein Thema lade, wird das Video gut angezeigt, aber die autoplay=1
Variable, die ich gerade durchlaufe, wird nicht abgehört .
Ich brauche die Videos, um sie beim Laden der Seite abzuspielen.
Irgendwelche Ideen?
Danke, Alain Fontaine
Antworten:
Das sind keine wirklichen Argumente wie für YouTube, sondern eher Argumente für WordPress.
Eine Möglichkeit, damit umzugehen, besteht darin, später in einem Filter auf Ihr Argument zuzugreifen und die HTML-Ausgabe zu ändern.
Übergeben Sie das Argumentarray:
Und Filter:
quelle
Ich weiß, dass diese Frage ziemlich alt ist, aber ich habe eine funktionierende Lösung, die meiner Meinung nach für alle anderen hilfreich sein könnte, die versuchen, diese Informationen zu finden, und die bei Google-Suchanfragen leer sind.
Diese Lösung wurde in WordPress 3.7.1+ getestet:
Fügen Sie das Obige in Ihr Thema ein
functions.php
, damit alle über oEmbed hinzugefügten YouTube-Videos automatisch wiedergegeben werden.Wie das funktioniert
In class-oembed.php in Zeile 212
fetch()
wendet die Methode den Filteroembed_fetch_url
an, um Änderungen an der URL zu ermöglichen.Um zu vermeiden, dass anderen oEmbed-Anbietern nutzlose Parameter hinzugefügt werden, suchen wir in der Anbieter-URL nach "youtube" - wir können auch nach "vimeo" und / oder anderen Videodiensten suchen - und fügen
autoplay
der Abfrage ein Argument hinzu, wenn diese Zeichenfolge vorhanden ist Zeichenfolge.quelle
&autoplay=1
zur Anbieter-URL hinzugefügt . Das ist NICHT der iframe src, und das oembed-System von youtube überträgt ihn nicht. Der Wert geht verloren_fetch_with_format
und wird nach oembed_fetch_url aufgerufen. Vielleicht hat das früher funktioniert, aber YouTube hat die API geändert?Dies ist meine Lösung in functions.php
genießen
quelle
Cross-Posting meiner Antwort von https://stackoverflow.com/a/55053642/799327 , hoffe, das ist in Ordnung, da es aus dem gleichen OP stammt:
Nach einigen Recherchen besteht der beste Weg, dies zu tun, darin, den
oembed_fetch_url
Filter-Hook zu nutzen, um der oEmbed-Anforderungs-URL zusätzliche Argumente hinzuzufügen. Mein spezifisches Ziel war es, einen Autoplay-Parameter zuzulassen, aber diese Methode ist so aufgebaut, dass sie leicht an jedes von Ihnen benötigte oEmbed-Argument angepasst werden kann.Fügen Sie dies zunächst zu Ihrem hinzu
functions.php
:Diese Funktion verwendet die generierte oEmbed-URL und die entsprechenden Argumente und überprüft sie in diesem Fall anhand einer fest codierten Liste von Argumenten auf der Whitelist
['autoplay']
. Wenn eines dieser Schlüsselwörter in der Whitelist in den an den oEmbed-Filter übergebenen Argumenten angezeigt wird, werden sie mit dem angegebenen Wert zur oEmbed-URL hinzugefügt.Anschließend müssen Sie nur noch den Parameter oEmbed zu Ihrem Shortcode im Wordpress-Editor hinzufügen:
Beachten Sie, dass die oEmbed-Klasse in WP das Postmeta als Cache für diese Anforderungen verwendet. Wenn Sie also die Ziel-URL zuvor eingebettet haben, müssen Sie möglicherweise Ihren Postmeta-Cache auf irgendeine Weise leeren oder dem Cache-Buster eine Art hinzufügen Ziel-URL. Wenn sich der Link im Cache befindet, wird der Filter-Hook niemals ausgeführt.
Ich hoffe, dass dies sinnvoll ist, da ich der Meinung bin, dass es eine ziemlich nützliche Funktion ist, die überraschend schwer herauszufinden ist, wie man sie erreicht.
quelle
Alles nach dem ersten Parameter muss als Array von Argumenten gesendet werden.
Siehe das Beispiel auf der Codex-Seite.
http://codex.wordpress.org/Function_Reference/wp_oembed_get
Wenn Sie versuchen, einen benutzerdefinierten Feldwert zu übernehmen und ihn durch den Einbettungscode in ein Video konvertieren zu lassen (dh was würde passieren, wenn Sie ihn in den Inhalt einfügen), können Sie Folgendes tun ...
Dies führt natürlich mehrere Filter über die Daten aus, die Sie nicht benötigen, aber es macht den Trick trotzdem.
quelle
Nach all den Nachforschungen habe ich Folgendes gefunden. Unten ist der Code.
Credits an https://gist.github.com/mustardBees/7704269#file-functions-php .
Vielen Dank!
quelle
Dies kann einfach behoben werden, indem die Funktion wp_oembed_get () in wp-includes / media.php folgendermaßen geändert wird:
quelle