¿Cómo eliminar la etiqueta de autor para que no sea visible en las vistas previas de Discord?

3 minutos de lectura

avatar de usuario
Harut

Al compartir una publicación en Discord, la vista previa que genera Discord muestra el nombre del autor y la URL. Eliminamos toda la información sobre el autor, pero eso no impidió que se mostrara la etiqueta de autor.

Imagen aquí

avatar de usuario
hrak

Eso se hace a través de oEmbed. Agregue el código a continuación en su archivo functions.php

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

**disorc puede haber almacenado la respuesta en caché, así que cree una nueva publicación o página y pruebe eso**

  • Agregue alguna explicación a su respuesta para que otros puedan aprender de ella.

    –Nico Haase

    6 de marzo de 2019 a las 8:52

  • esta es una manera muy consise de solucionar el problema. Solo agregando esto a la parte superior de este archivo /wp-includes/default-filters.php debajo del primer comentario (la parte que termina con */) soluciona el problema.

    – heypano

    23 de enero de 2020 a las 0:48

  • @heypano Nunca modifique los archivos principales de WordPress, los cambios que realice allí se eliminarán al actualizar. Todos los cambios deben ir en el archivo functions.php de su tema (si usted es el creador del tema), o dentro del archivo functions.php del tema secundario (si usa un tema prefabricado), por la misma razón.

    – ado387

    5 oct 2021 a las 10:46

avatar de usuario
AMSantiago

@hrak tiene la idea correcta, pero su respuesta carece de contexto para aquellos de nosotros que no estamos acostumbrados a tratar con PHP.

Lo que terminé haciendo fue verificar si ya había un filtro para 'oembed_response_data' en /wp-includes/default-filters.php. El mío se veía así:

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

Agregue la línea anterior al archivo especificado si, por alguna razón, aún no está allí.

Después, me registré wp-incluye/embed.php Para el get_oembed_response_data_rich función, que se veía así:

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

Acabo de agregar las dos líneas de código que @hrak introdujo en su respuesta para eliminar la etiqueta de autor (nombre y URL) de $data antes de ser devuelto:

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

Como antes, agregue el get_oembed_response_data_rich función si aún no existe. Después de unos 5-10 minutos, las incrustaciones de enlaces de Discord dejaron de mostrar la etiqueta de autor.

Fuente:

  • Creo que este archivo se sobrescribirá con cada actualización de WordPres.

    – Konrad Gałęzowski

    4 de junio de 2020 a las 8:31

Hice esto vaciando la función posted_by como muestra este artículo, en la sección “Usar código para eliminar el nombre del autor”.

https://wpdatatables.com/how-to-hide-the-author-in-wordpress/

básicamente encontrar el posted_by función y vaciarlo

function twentynineteen_posted_by() {

}

endif;

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad