Función para hacer tu WordPress atemporal

Si tu contenido es atemporal, como por ejemplo fotografías, vivécdotas o -en definitiva- cualquier material no perecedero en el tiempo, quizá debas hacer tu WordPress atemporal.

Posibles soluciones

  1. Modificar el tema o theme para eliminar toda llamada a las fechas de los contenidos. Este método es poco recomendable, sobretodo cuando tienes un theme comercial o de terceros, donde tendrías que hacer un child-theme con la inversión de tiempo que conlleva (Te interesará el método 4)
  2. Utilizar un plugin; no puedo recomendarte ninguno pues no los he probado y sólo recomiendo cosas que se que funcionan correctamente. Hay varios en el repositorio.
  3. Utilizar Javascript. Personalmente, considero que es la menos recomendada, es una locura modificar el DOM para una tarea tan sencilla como vamos a ver en el método 4
  4. Hacer una función que podemos insertar en nuestro functions.php o un plugin (mejor esta opción, sin duda) que elimine los retornos de los hooks de fechas. No te preocupes, a continuación te explico cómo hacerlo.

La función que elimina las fechas de los artículos

/** Función que elimina todo rastro de fechas en los artículos */
function bf_remove_dates() {
  add_filter('the_time', '__return_false');
  add_filter('get_the_time', '__return_false');
  add_filter('the_modified_time', '__return_false');
  add_filter('get_the_modified_time', '__return_false');
  add_filter('the_date', '__return_false');
  add_filter('get_the_date', '__return_false');
  add_filter('the_modified_date', '__return_false');
  add_filter('get_the_modified_date', '__return_false');
  add_filter('get_comment_date', '__return_false');
  add_filter('get_comment_time', '__return_false');
}
add_action('loop_start', 'bf_remove_dates');
Lenguaje del código: PHP (php)

Como puedes ver, añadimos la llamada a la función en el action loop_start, que se ejecuta después de imprimir estilos y scripts en el front.

Si vas a quitar las fechas sin más condiciones, te funcionará perfectamente ese ejemplo, pero si quieres añadir algún tipo de condición (como, por ejemplo, que sólo quite las fechas de cierto post type), lo mejor es que enganches esta función a un filtro más adecuado como el wp, así aseguras el tiro (ver orden de ejecución de hooks aquí). Para que lo entiendas, el hook wp se ejecuta antes de imprimir cualquier HTML en el documento, por lo que nos aseguramos que nuestras condiciones se aplican tal y como queremos (gracias Pablo por la puntualización)

Para ello, sustituye la última línea del código anterior (add_action(‘loop_start’…) por esta otra:

add_action('wp', 'bf_remove_dates');
Lenguaje del código: PHP (php)

Una vez cambiado esto, podrás añadir todos los add_filter que quieras dentro de tu condición. Como ejemplo final, así sería para eliminar la fecha SOLO de los single de un custom post type ficticio Libros:

/** Función que elimina todo rastro de fechas en los artículos */
function bf_remove_dates() {
  if( is_singular('libros') ){
    add_filter('the_time', '__return_false');
    add_filter('get_the_time', '__return_false');
    add_filter('the_modified_time', '__return_false');
    add_filter('get_the_modified_time', '__return_false');
    add_filter('the_date', '__return_false');
    add_filter('get_the_date', '__return_false');
    add_filter('the_modified_date', '__return_false');
    add_filter('get_the_modified_date', '__return_false');
    add_filter('get_comment_date', '__return_false');
    add_filter('get_comment_time', '__return_false');
  }
}
add_action('wp', 'bf_remove_dates');
Lenguaje del código: PHP (php)

He inspirado esta entrada en este artículo de Tech Flix.

Espero que te sirva en tus proyectos, ¡si te ha gustado el artículo ya sabes lo que hacer!

¡MANTENME INFORMADO!

¡Gracias por tu interés en estar informado del próximo lanzamiento de mis cursos! 😎

¡No hago spam! Lee la política de privacidad para tener más información.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

DARÍO BALBONTÍN FERNÁNDEZ es el Responsable del tratamiento de los datos personales del usuario y le informa que estos datos serán tratados de conformidad con lo dispuesto en el Reglamento (UE) 2016/679 de 27 de abril (GDPR) y la Ley Orgánica 3/2018 de 5 de diciembre (LOPDGDD), por lo que se le facilita la siguiente información del tratamiento: Fin del tratamiento: mantener una relación comercial y el envío de comunicaciones sobre nuestros productos y servicios. Criterios de conservación de los datos: se conservarán mientras exista un interés mutuo para mantener el fin del tratamiento y cuando ya no sea necesario para tal fin, se suprimirán con medidas de seguridad adecuadas para garantizar la seudonimización de los datos o la destrucción total de los mismos.Comunicación de los datos: No se comunicarán los datos a terceros, salvo obligación legal. Derechos que asisten al usuario: Derecho a retirar el consentimiento en cualquier momento. Derecho de acceso, rectificación, portabilidad y supresión de sus datos y a la limitación u oposición al su tratamiento. Derecho a presentar una reclamación ante la Autoridad de control (agpd.es) si considera que el tratamiento no se ajusta a la normativa vigente. Datos de contacto para ejercer sus derechos: contacto@dariobf.com.