web-dev-qa-db-ja.com

オーディオ/ビデオエンクロージャをプレーヤーと交換しますか?

現状:XMLフィードをフロントエンドやバックエンド(管理UI)に解析していますが、DBには解析していません。それらのフィードの中に私は現在プレーンテキスト(リンクなし、プレイヤーなし)としてのみmp3-とビデオコンテンツを置きます。

将来の目標:訪問者がビデオ/オーディオコンテンツを視聴できるように、上記の動作を変更したいと思います。

私が探しているもの:フィード内のオーディオおよび/またはビデオファイル用の(wp core)プレーヤーをロードする組み込み(wp core)関数。私が探していないもの:現在のテキストを置き換える正規表現/正規表現(link)。

解決策は、プラグイン、テーマ、その他のサードパーティのコードから独立している必要があります。

編集:まもなく質問、多分あなたは私の問題を理解しやすいでしょう

RSSフィードから「同封物」を見る方法はありますか?画像をサムネイルとして使用し、ビデオとオーディオのエンクロージャ用のプレーヤーを表示したいと思います。これは、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

私が探しているものの一部は、wp-includes/media.phpで定義されているWP_Embedクラスです。 URLを自動的に埋め込みハンドラの出力に置き換えるためのフレームワークを実装しています。自分でもっと深く調査する必要があると思います(これは明らかに2.9.0で導入されたので、ドキュメントはまだ薄いかもしれません)。

私はWordpressのコアはプレーヤーソリューションが付属しているかどうかは疑います。それはそれがgooglevideoのURLのための単一のデフォルト埋め込みハンドラをインストールするようです。それ以外の場合は、独自の埋め込みハンドラを作成して登録する必要があります。ファイルをホストして自分でプレーする場合は、サードパーティのプレーヤ(プラグイン)が必要か、またはHTML5のビデオ/オーディオタグに依存します。

ああ...そしてWP_Embedクラスはデフォルトで 'the_content'フィルタへのコールバックとして追加されるように思われるので、あなたは手動でそうする必要はないはずです。少なくともそれがここにあるようなものです。 ;-)

メディアファイルを指すURLを置き換えようとしているのではなく、<video></video><embed></embed>のような完全なタグの囲い込みを使用している場合は、正規表現に頼るかPHP XML操作関数、Wordpressにはそのようなことをするための関数が本来備わっていないことは間違いないと思います。

ただし、これらのタグ内のすべてとタグ自体を正規表現で消去してURLを残すだけで、上記の方法と組み合わせることができます。 'the_content'フィルタフックで10より高い優先度でそれを行うフィルタコールバックを登録した場合、WP_EmbedフィルタコールバックはこれらのURLに反応し、WP_Embedフレームワークを使用して残りを実行できます。

1
wyrfel

XMLデータを置き換えようとしているのであれば、XMLParser関数またはSimple XML Functionsを使用するのが最善の方法だと思います。

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

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

手元に例はありませんが、Web上にはたくさんの情報があるはずです。

コメントへの回答Simplepieは、出力前にコンテンツを次のように編集できるようです。 http://simplepie.org/wiki/tutorial/how_to_edit_part_of_the_feed_before_parsing_it

あなたのビデオがoEmbedを使っている主要なビデオストリーマのURLであれば、あなたは http://codex.wordpress.org/oEmbed を使うことができるかもしれません。ビデオプレーヤーを入手してこれらをsimplepieストリームに挿入するためですが、これは私の側では純粋な推測です。私はどちらのクラスも使ったことがありません。

0
Patriek

オリジナルのメディアをホスティングしているサービスがOEmbedをサポートしていない場合は、自分のプレーヤーを手動でインストールする必要があります。メディアプレーヤーにそれほど簡単に使えるような組み込み機能はありません。もし彼らがdoでOEmbedをサポートしているのなら、リンクをコンテンツフィルタでショートコードに包み込むだけでよいでしょう。 OEmbedサービスをホワイトリストに登録します。

0
Dougal Campbell