Как удалить метку автора, чтобы она не отображалась в превью Discord? - PullRequest
0 голосов
/ 06 марта 2019

При публикации сообщения в Discord, предварительный просмотр Discord генерирует показывает имя автора и URL. Мы удалили всю информацию об авторе, но это не помешало отображению тега автора.

Image here

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

@ hrak имеет правильную идею, но в его ответе отсутствует контекст для тех из нас, кто не привык иметь дело с PHP.

В итоге я проверил, не существует ли уже фильтр для 'oembed_response_data' в / WP-включает / по умолчанию-filters.php .Моя выглядела так:

add_filter( 'oembed_response_data', 'get_oembed_response_data_rich', 10, 4 );

Добавьте предыдущую строку к указанному файлу, если по какой-либо причине его там уже нет.

Впоследствии я зарегистрировался в wp-includes / embed.php для функции get_oembed_response_data_rich, которая выглядела следующим образом:

function get_oembed_response_data_rich( $data, $post, $width, $height ) {
    $data['width']  = absint( $width );
    $data['height'] = absint( $height );
    $data['type']   = 'rich';
    $data['html']   = get_post_embed_html( $width, $height, $post );

    // Add post thumbnail to response if available.
    $thumbnail_id = false;

    if ( has_post_thumbnail( $post->ID ) ) {
        $thumbnail_id = get_post_thumbnail_id( $post->ID );
    }

    if ( 'attachment' === get_post_type( $post ) ) {
        if ( wp_attachment_is_image( $post ) ) {
            $thumbnail_id = $post->ID;
        } elseif ( wp_attachment_is( 'video', $post ) ) {
            $thumbnail_id = get_post_thumbnail_id( $post );
            $data['type'] = 'video';
        }
    }

    if ( $thumbnail_id ) {
        list( $thumbnail_url, $thumbnail_width, $thumbnail_height ) = wp_get_attachment_image_src( $thumbnail_id, array( $width, 99999 ) );
        $data['thumbnail_url']                                      = $thumbnail_url;
        $data['thumbnail_width']                                    = $thumbnail_width;
        $data['thumbnail_height']                                   = $thumbnail_height;
    }

    return $data;
}

Я просто добавил две строки кода, которые @hrak представил в своем ответе, чтобы удалить тег автора(имя и URL) от $data до его возвращения:

function get_oembed_response_data_rich( $data, $post, $width, $height ) {

    (...)

    if ( $thumbnail_id ) {
        list( $thumbnail_url, $thumbnail_width, $thumbnail_height ) = wp_get_attachment_image_src( $thumbnail_id, array( $width, 99999 ) );
        $data['thumbnail_url']                                      = $thumbnail_url;
        $data['thumbnail_width']                                    = $thumbnail_width;
        $data['thumbnail_height']                                   = $thumbnail_height;
    }

    unset($data['author_url']);
    unset($data['author_name']);

    return $data;
}

Как и раньше, добавьте функцию get_oembed_response_data_rich, если она еще не существует.Примерно через 5-10 минут встраивание ссылки Discord перестало отображать тег автора.

Источник:

0 голосов
/ 06 марта 2019
add_filter( 'oembed_response_data', 'disable_embeds_filter_oembed_response_data_' );
function disable_embeds_filter_oembed_response_data_( $data ) {
    unset($data['author_url']);
    unset($data['author_name']);
    return $data;
}
...