web-dev-qa-db-fra.com

Remplacer le boîtier audio/vidéo par le lecteur?

État actuel: j'analyse les flux XML dans le serveur principal et/ou le serveur principal (interface utilisateur administrative), mais pas dans la base de données. Dans ces flux, je place le contenu MP3 et vidéo, uniquement sous forme de texte brut (pas de lien, pas de lecteur).

Objectif futur: je souhaite modifier le comportement ci-dessus afin que les visiteurs puissent regarder/écouter du contenu vidéo/audio.

Ce que je recherche: fonction (s) intégrée (s) (wp core) qui charge un lecteur (wp core) pour les fichiers audio et/ou vidéo dans le flux. Ce que je ne cherche pas: Une expression régulière/regex pour remplacer le texte actuel (lien).

La solution doit être indépendante de tout plugin, thème ou autre code tiers.

Edit: Bientôt une question, peut-être que vous comprenez mon problème plus facilement

Existe-t-il un moyen de voir les '' enceintes '' à partir des flux RSS? J'aimerais utiliser les images sous forme de vignettes et voir un lecteur pour les enceintes vidéo et audio. Voici un exemple d'élément de fil avec Enclosure ...

<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

Je pense qu'une partie de ce que vous recherchez est la classe WP_Embed définie dans wp-includes/media.php. Il implémente un cadre pour remplacer automatiquement les URL par les sorties des gestionnaires d'intégration. Je crains que vous n'ayez à faire les recherches plus approfondies vous-même (apparemment, cela a été introduit dans la version 2.9.0, la documentation pourrait donc encore être mince).

Je doute que le noyau de Wordpress vienne avec une solution de lecteur ou le fasse jamais. Il semblerait qu’il installe un seul gestionnaire d’incorporation par défaut pour les URL googlevideo. Pour tout le reste, vous devrez écrire et enregistrer votre propre gestionnaire d’incorporation et si vous souhaitez héberger vous-même les fichiers et le lecteur, vous aurez besoin d’un lecteur tiers (plug-in) ou d’utiliser des balises audio/vidéo HTML5.

Ahh ... et la classe WP_Embed semble être ajoutée par défaut aux filtres 'the_content', vous n'avez donc pas besoin de le faire manuellement. Au moins c'est ce que ça ressemble ici. ;-)

Par contre, si vous n'essayez pas de remplacer les URL pointant vers vos fichiers multimédias, mais plutôt des enveloppes de balises complètes telles que <video></video> ou <embed></embed> et ainsi de suite, vous devrez alors vous fier à l'expression régulière ou écrire votre PHP Les fonctions de manipulation XML, comme je suis presque sûr que Wordpress ne vient pas nativement avec des fonctions permettant de faire quelque chose comme ça.

Vous pouvez toutefois combiner cela avec ce qui précède, ce qui simplifie un peu le travail en effaçant de manière rationnelle tout ce qui est contenu dans ces balises et dans les balises elles-mêmes et en ne laissant que l'URL. Si vous enregistrez le rappel de filtre qui le fait avec une priorité supérieure à 10 sur le crochet de filtre 'the_content', le rappel de filtre WP_Embed réagira alors sur ces URL et vous pourrez faire le reste à l'aide du cadre WP_Embed.

1
wyrfel

Si vous essayez de remplacer les données XML, je pense que le meilleur moyen serait d’utiliser les fonctions XMLParser ou les fonctions XML simples.

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

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

Je n'ai pas d'exemples sous la main, mais il devrait y en avoir beaucoup sur le Web.

Réponse au commentaire Simplepie semble pouvoir modifier le contenu avant la sortie de la manière suivante: http://simplepie.org/wiki/tutorial/how_to_edit_part_of_the_feed_before_parsing_it .

Si votre vidéo est une URL des principaux streamers vidéo utilisant oEmbed, vous pourrez peut-être utiliser http://codex.wordpress.org/oEmbed this obtenir les lecteurs vidéo et les injecter dans le flux simple, mais ce n’est que pure spéculation de ma part. Je n'ai pas travaillé avec les deux classes.

0
Patriek

Si les services hébergeant le support d'origine ne prennent pas en charge OEmbed, vous devrez installer manuellement vos propres lecteurs. Il n'y a pas de fonction intégrée qui vous donnera des lecteurs multimédias aussi facilement. Si ils prennent en charge , alors tout ce que vous avez à faire est d’envelopper vos liens dans des shortcodes [embed] avec un filtre de contenu, et éventuellement d’ajouter un filtre à liste blanche des services OEmbed.

0
Dougal Campbell