[WordPress] Eliminar fecha y autor en las entradas y comentarios

En determinadas webs no resulta necesario mostrar información como la fecha de publicación, el autor de una entrada o incluso la fecha y hora de los comentarios.

WordPress muestra estos datos de forma predeterminada y muchos temas los utilizan en diferentes partes de la página: listados de entradas, páginas individuales, archivos, widgets, comentarios, etc.

Si nuestro objetivo es crear un diseño más limpio o simplemente no queremos mostrar esta información, podemos modificar este comportamiento utilizando los hooks y filtros de WordPress, sin necesidad de editar directamente los archivos del núcleo.

Antes de empezar: una advertencia importante

El código original de este artículo indicaba modificar:

/wp-includes/functions.php

No debemos modificar ese archivo.

La carpeta wp-includes forma parte del núcleo de WordPress. Cualquier actualización de WordPress puede sobrescribir nuestras modificaciones y, además, editar archivos del core puede dificultar el mantenimiento y las actualizaciones futuras.

Tenemos varias alternativas mucho más seguras:

  • Utilizar el archivo functions.php de un tema hijo.
  • Crear un plugin personalizado para nuestra web.
  • Utilizar un plugin de snippets que permita añadir código PHP de forma controlada.

Para pequeños proyectos, el tema hijo puede ser suficiente. Si queremos que la modificación sea independiente del tema que utilicemos, lo más recomendable es convertir este código en un pequeño plugin.

¿Qué vamos a ocultar?

En este ejemplo vamos a eliminar:

  • La fecha de publicación de las entradas.
  • El nombre del autor.
  • La fecha de los comentarios.
  • La hora de los comentarios.

Es importante entender que esto no elimina los datos de WordPress. Simplemente impedimos que determinados filtros devuelvan esos valores cuando el tema o el contenido los solicita.

La función PHP

Podemos crear una función que aplique los filtros necesarios:

function remove_post_metadata() {

    // Ocultar fecha de publicación.
    add_filter('the_date', '__return_false');
    add_filter('get_the_date', '__return_false');

    // Ocultar autor.
    add_filter('the_author', '__return_false');
    add_filter('get_the_author', '__return_false');

    // Ocultar fecha y hora de los comentarios.
    add_filter('get_comment_date', '__return_false');
    add_filter('get_comment_time', '__return_false');
}

add_action('loop_start', 'remove_post_metadata');

¿Qué estamos haciendo exactamente?

La función remove_post_metadata() utiliza varios filtros de WordPress para modificar la información que normalmente devolverían determinadas funciones.

Ocultar la fecha

add_filter('the_date', '__return_false');
add_filter('get_the_date', '__return_false');

Estos filtros afectan a la información relacionada con la fecha de publicación.

La función especial __return_false pertenece al propio WordPress y simplemente devuelve false. De esta forma evitamos que se muestre el valor solicitado.

Ocultar el autor

add_filter('the_author', '__return_false');
add_filter('get_the_author', '__return_false');

Con estos filtros podemos evitar que se devuelva el nombre del autor cuando el tema utiliza las funciones correspondientes.

Ocultar fecha y hora de los comentarios

add_filter('get_comment_date', '__return_false');
add_filter('get_comment_time', '__return_false');

De esta manera también podemos eliminar la información temporal asociada a los comentarios.

¿Dónde debemos colocar el código?

Esta es probablemente la parte más importante.

No debemos colocar el código en:

/wp-includes/functions.php

En su lugar, podemos utilizar el archivo:

/wp-content/themes/tu-tema-hijo/functions.php

Por ejemplo, si estamos utilizando un tema hijo llamado mi-tema-child:

/wp-content/themes/mi-tema-child/functions.php

De esta forma nuestras modificaciones permanecerán separadas del núcleo de WordPress y del tema principal.

¿Qué ocurre si actualizamos el tema?

Esta es precisamente una de las ventajas de utilizar un tema hijo.

Si modificamos directamente:

/wp-content/themes/tema-principal/functions.php

una actualización del tema podría sobrescribir nuestro código.

En cambio, si utilizamos un tema hijo, nuestras modificaciones permanecen en:

/wp-content/themes/tema-hijo/functions.php

y no deberían perderse al actualizar el tema principal.

Una alternativa todavía mejor: crear un pequeño plugin

Si queremos que esta modificación sea independiente del diseño de nuestra web, podemos convertirla en un plugin extremadamente sencillo.

Creamos un archivo llamado, por ejemplo:

ocultar-metadatos.php

Y añadimos:

<?php
/**
 * Plugin Name: Ocultar metadatos de entradas
 * Description: Oculta fecha, autor y datos temporales de los comentarios.
 * Version: 1.0.0
 * Author: Serna Studio
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

function serna_ocultar_metadatos() {

    // Fecha de publicación.
    add_filter( 'the_date', '__return_false' );
    add_filter( 'get_the_date', '__return_false' );

    // Autor.
    add_filter( 'the_author', '__return_false' );
    add_filter( 'get_the_author', '__return_false' );

    // Fecha y hora de los comentarios.
    add_filter( 'get_comment_date', '__return_false' );
    add_filter( 'get_comment_time', '__return_false' );
}

add_action( 'loop_start', 'serna_ocultar_metadatos' );

Después podemos colocar el archivo dentro de:

/wp-content/plugins/ocultar-metadatos/

La estructura quedaría así:

wp-content/
└── plugins/
    └── ocultar-metadatos/
        └── ocultar-metadatos.php

Finalmente, desde el panel de WordPress podemos acceder a Plugins → Plugins instalados y activar nuestro plugin.

¿Por qué utilizar hooks en WordPress?

WordPress dispone de un sistema de hooks que permite modificar el comportamiento del sistema sin necesidad de modificar directamente su código interno.

Existen dos grandes tipos:

  • Actions: permiten ejecutar nuestro propio código en determinados momentos.
  • Filters: permiten modificar datos antes de que sean utilizados o mostrados.

En este caso estamos utilizando principalmente filters:

add_filter( 'the_date', '__return_false' );

WordPress llama al filtro cuando necesita obtener determinado contenido y nuestro callback modifica el resultado.

¿Por qué puede que no funcione con mi tema?

Aquí encontramos una cuestión importante: no todos los temas muestran los metadatos utilizando exactamente las mismas funciones de WordPress.

Un tema puede utilizar:

the_date();
the_author();
get_the_date();
get_the_author();

pero también puede generar estos datos directamente mediante HTML, funciones propias del tema, bloques o componentes personalizados.

Por ese motivo, aplicar un filtro no garantiza que desaparezca absolutamente cualquier representación visual de la fecha o del autor.

Si después de aplicar el código seguimos viendo la fecha o el autor, tendremos que comprobar cómo nuestro tema está generando esos elementos.

¿Y si utilizamos OceanWP?

En temas como OceanWP existen hooks específicos que permiten intervenir en determinadas zonas de la plantilla.

Por ejemplo, podemos utilizar acciones proporcionadas por el propio tema para intervenir alrededor de determinadas áreas del contenido.

function serna_remove_post_data() {

    add_filter( 'the_date', '__return_false' );
    add_filter( 'get_the_date', '__return_false' );

    add_filter( 'the_author', '__return_false' );
    add_filter( 'get_the_author', '__return_false' );

    add_filter( 'get_comment_date', '__return_false' );
    add_filter( 'get_comment_time', '__return_false' );
}

// Ejemplo de integración con hooks del tema.
add_action( 'ocean_before_single_post_author_bio', 'serna_remove_post_data' );
add_action( 'ocean_after_single_post_author_bio', 'serna_remove_post_data' );

Sin embargo, aquí debemos tener cuidado: los hooks disponibles dependen del tema y de su implementación concreta. Antes de utilizarlos conviene comprobar la documentación de la versión del tema que tengamos instalada.

Otra opción: ocultarlo mediante CSS

Si nuestro único objetivo es que determinados elementos no sean visibles, también podemos hacerlo mediante CSS.

Por ejemplo:

.entry-meta,
.post-author,
.post-date {
    display: none;
}

Pero esta solución tiene una diferencia importante respecto a PHP: el contenido sigue siendo generado por WordPress y simplemente estamos ocultándolo visualmente mediante CSS.

Además, las clases CSS varían entre temas, por lo que este código es solamente un ejemplo. Antes de utilizarlo tendremos que inspeccionar el HTML generado por nuestra instalación.

PHP o CSS: ¿qué opción elegir?

Método Ventaja Inconveniente
PHP / filtros Modifica el contenido antes de mostrarlo Depende de cómo el tema genere los datos
CSS Muy sencillo de implementar El contenido continúa existiendo en el HTML
Modificar plantilla Control total sobre el HTML Más complejo y dependiente del tema

¿Esto elimina la fecha de WordPress?

No.

Esto es importante entenderlo.

La entrada seguirá teniendo su fecha de publicación almacenada en la base de datos. También seguirá existiendo el autor asociado a la entrada.

Lo que estamos modificando es la forma en la que esos datos se presentan al visitante.

Por tanto, podemos seguir utilizando las fechas internamente para ordenar entradas, realizar consultas, generar feeds, trabajar con la API REST o utilizar otras funcionalidades de WordPress.

¿Y qué ocurre con el SEO?

Ocultar la fecha o el autor no debería considerarse una técnica SEO por sí misma.

Dependiendo del tipo de contenido, las fechas pueden aportar información útil al usuario, especialmente en artículos técnicos, noticias, tutoriales o contenidos que se actualizan periódicamente.

Antes de eliminar estos elementos conviene preguntarnos si realmente aportan información útil.

En una web corporativa, portfolio o determinados proyectos personales puede tener sentido no mostrarlos. En un sitio de noticias, documentación o tutoriales técnicos, probablemente sea más útil conservarlos.

Recomendación final

Si simplemente queremos eliminar la fecha y el autor de nuestras entradas, podemos hacerlo mediante filtros de WordPress.

Pero la recomendación más importante de este artículo es otra:

No modifiques los archivos del núcleo de WordPress para realizar cambios de este tipo.

Utiliza un tema hijo, un plugin personalizado o una solución basada en hooks. De esta manera nuestras modificaciones estarán separadas del core y serán mucho más fáciles de mantener.

Conclusión

WordPress ofrece un sistema de hooks extremadamente potente que nos permite modificar gran parte de su comportamiento sin tocar directamente el núcleo.

En este caso hemos utilizado filtros para controlar la información relacionada con la fecha, el autor y los comentarios.

Además, hemos visto que existen varias estrategias dependiendo de nuestras necesidades: filtros PHP, CSS o modificación de las plantillas del tema.

La solución más limpia dependerá de cómo esté construido nuestro tema, pero como regla general:

  • No modificar el core de WordPress.
  • Utilizar un tema hijo si el cambio depende del diseño.
  • Utilizar un plugin si queremos que el cambio sea independiente del tema.
  • Utilizar hooks y filtros siempre que sea posible.
  • Realizar una copia de seguridad antes de modificar código.

Y, sobre todo, recuerda que ocultar un dato no significa eliminarlo. La fecha, el autor y el resto de metadatos continuarán formando parte de nuestra instalación de WordPress; simplemente hemos decidido que no sean mostrados en determinadas partes de la web.


Nota: Los nombres de hooks y filtros pueden variar en función del tema y de la versión de WordPress utilizada. Si un elemento continúa apareciendo después de aplicar el código, lo primero que debemos hacer es inspeccionar cómo lo está generando nuestro tema antes de añadir más código.

Visitas: 153

Website |  + posts

Automation & Data Specialist | Web Development | Data Processing & Integration

Deja un comentario