Contenido

Mostrar los últimos X posts separados por fechas

26 Jun

+ 2

Juglar, preguntaba como pontar un sistema de mostrar los últimos X posts de forma que pudieran quedar separados por fechas, en su caso por meses. 

He estado mirando un poco y no es nada complicado, es más si os habeis fijado yo hago algo parecido con los mini-posts, que los cuento por días. Para ello basta con conocer la estructura de la función date de php y una maravillosa función definida en WordPress llamaga get_the_time, la cual nos devuelve la fecha del post actual dentro de loop.

¿Como?

Pues muy facil, vamos a hacer un pseudocódigo, para entender un poco mejor lo que queremos hacer.

si fecha_inicio es distinta a  fecha_post entonces  
    mostrar fecha()    
    fecha_inicio = fecha_post    
fin si   

mostrar post()  

Con este pequeño código, ya podemos entender lo que queremos conseguir y como hacerlo, simplemente haremos una comprobación de la fecha de cada post para saber cuando cambia la fecha mostrando siempre la primera diferente que encuentre.

Vamos al código

Para hacer esto en PHP, tendríamos que editar el fichero en el que queramos que aparezca esto, normalmente será el fichero index.php, aunque en casos como el de Juglar lo tendrá que hacer en el fichero archive.php, que es el que se encarga de mostrar los posts del sitio.

Dentro del loop, tendremos que añadir la condición anterior para controlar las fechas de los posts.

<? if ($fecha != get_the_time('m')) { 
echo '<p class="time">'.get_the_time('F jS, Y')."</p>"; $fecha = get_the_time('m');} ?> 

En este caso hacemos que nos separe los posts por meses, haciendo que nos devuelva la fecha en ‘m’ (meses numéricos). 

Y ya está, con este código mostramos la fecha en formato F jS, Y (Miércoles, Febrero 15th, 2006) cada vez que la fecha cambia. Conociendo la función date de PHP puedes jugar con las fechas y hacer que te separe los posts como quieras.

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.