web-dev-qa-db-de.com

Audio/Video-Gehäuse durch Player ersetzen?

Aktueller Status: Ich analysiere XML-Feeds in das Front-End und/oder das Back-End (Admin-Benutzeroberfläche), aber nicht in die Datenbank. In diesen Feeds platziere ich MP3- und Video-Inhalte, derzeit nur als Klartext (kein Link, kein Player).

Zukünftiges Ziel: Ich möchte das oben genannte Verhalten ändern, damit Besucher Video-/Audio-Inhalte sehen/hören können.

Was ich suche: eingebaute (wp core) Funktion (en), die einen (wp core) Player für Audio- und/oder Videodateien im Feed laden. Was ich nicht suche: Ein regulärer Ausdruck/Regex, um den aktuellen Text (Link) zu ersetzen.

Die Lösung sollte unabhängig von Plugins, Themes oder anderem Code von Drittanbietern sein.

Edit: Kurz eine Frage, vielleicht verstehst du mein Problem leichter

Gibt es eine Möglichkeit, "Gehäuse" in RSS-Feeds anzuzeigen? Ich möchte die Bilder als Miniaturansichten verwenden und einen Player für Video- und Audioboxen anzeigen. Hier ist ein Beispiel für einen Feedeintrag mit Anlage ...

<item>
    <title>New Ferrari FF video</title>

    <link>http://www.evo.co.uk/news/evonews/264793/ferrari_ff_new_pictures_and_video.html</link>
    <description>Ferrari releases a new, action-packed and undisguised video of its FF supercar. Video and new pictures here</description>
    <pubDate>Fri, 25 Feb 2011 15:04:58 +0000</pubDate>
    <Enclosure url="http://www.evo.co.uk/images/front_picture_library_UK/dir_853/car_photo_426559_23.jpg" length="5420" type="image/jpeg"/>
</item>
6
bueltge

Ich glaube, ein Teil dessen, wonach Sie suchen, ist die WP_Embed-Klasse, die in wp-includes/media.php definiert ist. Es implementiert ein Framework zum automatischen Ersetzen von URLs durch die Ausgabe von Embed-Handlern. Ich befürchte, Sie müssen die tieferen Recherchen selbst durchführen (dies wurde anscheinend in 2.9.0 eingeführt, sodass die Dokumentation möglicherweise immer noch dünn ist).

Ich bezweifle, dass der Wordpress-Kern mit einer Player-Lösung geliefert wird oder dies jemals tun wird. Anscheinend wird ein einziger Standard-Embed-Handler für Google Video-URLs installiert. Für alles andere müssen Sie Ihren eigenen Embed-Handler schreiben und registrieren. Wenn Sie die Dateien und den Player selbst hosten möchten, benötigen Sie entweder einen Player eines Drittanbieters (Plugin) oder verwenden HTML5-Video-/Audio-Tags.

Ahh ... und die WP_Embed-Klasse scheint standardmäßig als Rückruf zu den 'the_content'-Filtern hinzugefügt zu werden, daher sollten Sie dies nicht manuell tun müssen. Zumindest sieht es hier so aus. ;-)

WENN Sie andererseits nicht versuchen, URLs zu ersetzen, die auf Ihre Mediendateien verweisen, sondern Tags wie <video></video> oder <embed></embed> usw. vervollständigen, müssen Sie sich auf Regex verlassen oder Ihr PHP schreiben. XML-Manipulationsfunktionen, da ich mir ziemlich sicher bin, dass Wordpress nicht von Haus aus mit Funktionen ausgestattet ist, um so etwas zu tun.

Sie können dies jedoch mit dem oben Gesagten kombinieren, um Ihre Arbeit ein bisschen einfacher zu machen, indem Sie alles in diesen Tags und den Tags selbst neu ausdrücken und nur die URL belassen. Wenn Sie den Filter-Callback, der dies tut, mit einer höheren Priorität als 10 für den Filter-Hook 'the_content' neu registrieren, reagiert der Filter-Callback WP_Embed auf diese URLs und Sie können den Rest mit dem Framework WP_Embed erledigen.

1
wyrfel

Wenn Sie versuchen, XML-Daten zu ersetzen, ist es meines Erachtens am besten, die XMLParser-Funktionen oder die Simple XML-Funktionen zu verwenden.

http://php.net/manual/en/book.xml.php

http://us2.php.net/manual/en/book.simplexml.php

Ich habe keine Beispiele zur Hand, aber es sollte eine Menge im Web geben.

Antwort auf Kommentar Simplepie scheint in der Lage zu sein, Inhalte vor der Ausgabe wie folgt zu bearbeiten: http://simplepie.org/wiki/tutorial/how_to_edit_part_of_the_feed_before_parsing_it .

Wenn es sich bei Ihrem Video um eine URL der wichtigsten Video-Streamer handelt, die oEmbed verwenden, können Sie möglicherweise http://codex.wordpress.org/oEmbed verwenden, um die Video-Player abzurufen und diese in den Simplepie-Stream einzuspielen Das ist reine Spekulation meinerseits. Ich habe nicht mit beiden Klassen gearbeitet.

0
Patriek

Wenn die Dienste, die die Originalmedien hosten, OEmbed nicht unterstützen, müssen Sie Ihre eigenen Player manuell installieren. Es gibt keine eingebaute Funktion, mit der Sie Mediaplayer so einfach abspielen können. Wenn sie do OEmbed unterstützen, müssen Sie Ihre Links nur in Shortcodes mit einem Inhaltsfilter einbetten und möglicherweise einen Filter zur Whitelist der OEmbed-Dienste hinzufügen.

0
Dougal Campbell