La respuesta al título de esta entrada es sencilla. Si utilizas the_date() iterando sobre varios posts y en alguno se repite en fecha, es decir, si de uno a otro tenemos la misma fecha de creación entonces la fecha no se mostrará cuando sea repetida.
¿Es esto un error de WordPress? Por supuesto que no. De hecho si revisáis en el codex para the_date() os encontraréis con el aviso. Veamos el porqué y cómo solucionarlo.
Por defecto, la mayor parte de los temas (themes/templates) para WordPress usan la función the_date() en cada post, para mostrar cuándo un post fue escrito por primera vez (si queremos la última fecha de modificación usaremos the_modified_date() en su lugar, aunque no suele ser el caso más común), sin embargo, si dos posts son publicados el mismo día sólo se mostrará la primera aparición cuando usamos la función the_date(). Esto no da ningún problema si lo hacemos en el single (sólo habrá un post), pero si nos vamos a un loop (e.g. archive.php) sí nos podemos encontrar este caso.
¿Cómo podemos solucionarlo? En su lugar, si usamos the_time() entonces sí veremos la fecha en cada iteración; también podemos usar la función get_the_date(), pero entonces tendremos que usar un echo para mostrarla. Ambas, the_time() y the_date() usan el mismo formato de fechas, lo que significa que podemos simplemente reemplazar una función por otra, pero ¿por qué existe the_date()? Como os adelantaba arriba no es un error, esta función suele resultar de utilidad si queremos imprimir la fecha de sucesivos post en forma de lista (como un catálogo histórico por fechas).
Espero que este tip os haya resultado de utilidad. Como siempre, si tenéis alguna duda sobre WordPress, aquí estamos.
Imagen libre desde Gaderinge.