web-dev-qa-db-ja.com

OEmbedリンクのHTMLフォーマットを変更する方法

カスタムテーマにoEmbed DeviantArt統合を追加しようとしています。

私は最初のステップは非常に簡単であることがわかりました、と付け加えました

wp_oembed_add_provider( 'http://*.deviantart.com/#/d*', 'http://backend.deviantart.com/oembed' );   

テーマのfunctions.phpへ。

さて、デフォルトのHTML出力を変更して、author_name、author_urlなどのように、DeviantArt JSONレスポンス( DeviantARTリファレンス )で利用可能な情報を追加したいと思います。 。

出力を管理するWPコードがclass-oembed.phpのfunctiondata2htmlの中にあることをよく研究してみましたが、ここでコードを変更するのは嫌いです。

希望の結果を得るために、どのように私のテーマに機能を追加することができますか?

1
Drake

WP_oEmbed::data2html()にはフィルタがあります、 oembed_dataparse 。これを使用して、2番目のパラメーターとして渡される追加のデータに基づいて、出力を変更することができます。

例えばこんな感じです:

add_filter( 'oembed_dataparse', 'wpse17461_oembed_dataparse', 10, 3 );
function wpse17461_oembed_dataparse( $html, $data, $url )
{
    if ( FALSE !== strpos( $url, 'deviantart.com' ) ) {
        return $html . '<br/>Author: ' . $data->author_name;
    }
    return $html;
}
4
Jan Fabry