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
- 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)
- 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.
- 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
- 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!