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.
¿Cómo eliminar la etiqueta de autor para que no sea visible en las vistas previas de Discord?
Harut
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
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;