Pregunta

Estoy tratando de agregar la integración de deviantArt ombed a un tema personalizado.

Descubrí que el primer paso es bastante fácil, agregué

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

al tema funciones.php.

Ahora, me gustaría cambiar la salida HTML predeterminada para agregar más información, disponible en la respuesta de Deviantart JSON (Referencia de deviantart), como autor_name, autor_url, etc.

Si he estudiado bien el código WP que administra la salida es la función interior data2html en class-oembed.php, pero no me gusta cambiar el código aquí.

¿Cómo puedo agregar una función a mi tema para lograr el resultado deseado?

¿Fue útil?

Solución

WP_oEmbed::data2html() tiene un filtro, oembed_dataparse. Puede usar esto para cambiar la salida, en función de los datos adicionales que se pasan como el segundo parámetro.

Algo como esto, por ejemplo:

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;
}
Licenciado bajo: CC-BY-SA con atribución
scroll top