Как изменить форматирование HTML из OEMBed Link?

wordpress.stackexchange https://wordpress.stackexchange.com/questions/17461

  •  22-10-2019
  •  | 
  •  

Вопрос

Я пытаюсь добавить интеграцию DeviantArt Oembed в пользовательскую тему.

Я обнаружил, что первый шаг довольно прост, я добавил

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

к теме functions.php.

Теперь я хотел бы изменить выход HTML по умолчанию, чтобы добавить больше информации, доступной в ответе Deviantart JSON (Ссылка на DeviantArt), как Author_Name, Author_url и т. Д.

Если я хорошо изучал код WP, который управляет выходом, находится внутри функции data2html в Class-oembed.php, но я не люблю менять код здесь.

Как я могу добавить функцию в свою тему, чтобы достичь желаемого результата?

Это было полезно?

Решение

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;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top