Índice de contenidos
Listar todos los post por título
En esta entrada vamos a modificar la plantilla de nuestro tema category.php para listar todos los post por título ordenados alfabéticamente.
Abre la plantilla category.php y copia el código que encontrarás a continuación dentro del <div class=»content»> o similar.
Código en plantilla category.php
<h1>Glosario de entradas Lph</h1> <ul class="glosario"> <?php $letra = "ABCD"; $args = array( 'posts_per_page' => -1, 'orderby'=> 'title', 'order' => 'ASC' ); $glossaryposts = get_posts( $args ); // bucle foreach( $glossaryposts as $post ) : setup_postdata($post); if($letra!=substr (get_the_title(),0, 1)){ ?> <li><?php echo substr (get_the_title(),0, 1);?></li> <?php $letra=substr (get_the_title(),0, 1);}?> <li><a href="<?php the_permalink(); ?>"> >> <?php the_title(); ?></a></li> <?php endforeach; ?> </ul> <?php wp_reset_postdata();?>
Explicación código
Como veis el código es sencillo, utilizando la función get_post() creamos una nueva consulta cuyos parámetros son todos los post ordenados por título en orden ascendente, recorremos la consulta con un foreach y la visualizamos dentro de una lista.
Hemos declarado una variable llamada $letra para añadir a la lista de los post la letra del glosario, es decir A, B, C… inicialmente su valor es «ABCD«, un valor que no va a coincidir con la verificación siguiente; si te fijas dentro del bucle comparamos esta variable con la primera letra del título, si es diferente entonces escribimos en pantalla la primera letra del título y cambiamos el valor de la variable letra, si es igual no hacemos nada.
El resultado es el siguiente:
Código en otras plantillas
Lo que hemos realizado es algo muy sencillo, también puedes modificar la plantilla single.php, que es la plantilla que se carga con cada post individual, para obtener en la barra lateral un listado de todos los post creados de la misma categoría que el post que están viendo en la página, o crear diferentes templates para cada categoría y filtrar los resultados según la categoría seleccionada.
Si necesitas ayuda puedes consultar la siguiente página del codex de WordPress.
0 comentarios