如何修改oEmbedded链接的HTML格式?

时间:2011-05-17 作者:Drake

我正在尝试将oEmbed DeviceArt集成添加到自定义主题中。

我发现第一步很容易,我补充道

wp_oembed_add_provider( \'http://*.deviantart.com/#/d*\', \'http://backend.deviantart.com/oembed\' );   
主题的功能。php。

现在,我想更改默认HTML输出以添加更多信息,这些信息可在DeviceArt JSON响应中获得(DeviantART reference), 如author\\u name、author\\u url等。

如果我研究得很好,那么管理输出的WP代码就在类oembed中的函数data2html中。php,但我不喜欢在这里更改代码。

如何为主题添加功能,以达到预期效果?

1 个回复
最合适的回答,由SO网友:Jan Fabry 整理而成

WP_oEmbed::data2html() 有一个过滤器,oembed_dataparse. 您可以根据作为第二个参数传递的额外数据来更改输出。

例如,类似这样的内容:

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;
}

结束

相关推荐

Displaying oEmbed errors?

有时,通过oEmbed嵌入项目是不可能的,例如,当YouTube视频已禁用嵌入时。The oEmbed service will return a 401 Unauthorized, 并且不会转换代码。有没有办法通知用户这一点?当前的工作流是非直观的(至少对我来说),我更喜欢在WordPress页面上,或者更好的是,在编辑器中显示一条消息,说明对象无法嵌入。