web-dev-qa-db-fra.com

Comment modifier le formatage HTML d'un lien oEmbed?

J'essaie d'ajouter l'intégration oEmbed DeviantArt à un thème personnalisé.

J'ai trouvé que la première étape est assez facile, j'ai ajouté

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

au thème functions.php .

Maintenant, je voudrais changer la sortie HTML par défaut pour ajouter plus d’informations, disponibles dans la réponse JSON de DeviantArt ( référence DeviantART ), comme nom_auteur, auteur_url, etc. .

Si j'ai bien étudié le code WP qui gère la sortie est à l'intérieur de la fonction data2html dans class-oembed.php , mais je n'aime pas changer le code ici.

Comment puis-je ajouter une fonction à mon thème pour obtenir le résultat souhaité?

1
Drake

WP_oEmbed::data2html() a un filtre, oembed_dataparse . Vous pouvez l'utiliser pour modifier la sortie, en fonction des données supplémentaires transmises en tant que deuxième paramètre.

Quelque chose comme ça par exemple:

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