Wordpress

Creando un theme de WordPress (III): mostrando distintos contenidos con el loop y los templates

Respuesta rápida

Para mostrar el contenido de las  entradas y las páginas se utiliza el loop, a su vez, para personalizar el contenido se añaden templates extras como content.php o content-page.php, entre otros. Además, se actualizan los templates generales para diferenciar mejor el contenido.

Respuesta completa

Requisitos:

El loop de WordPress -a partir de ahora WP-, es la esencia más importante de WP, ya que una página no recibe miles de visitas por su diseño ni por su autor, si no por su contenido.

El loop se encargará de mostrar el contenido, por lo tanto irá en la parte central de nuestros templates.

De este modo, nuestro index.php quedará tal que así.

Voy a comentar la parte nueva -obviando la primera línea de seguridad-

Ahora hay que crear los archivos loop.php y loop-empty.php.

Cuando tengamos la página sin ningún post publicado, o tengamos una categoría o un tag sin ningún post vinculado, se mostrará el loop vacío.

Por lo tanto, el loop vacío tiene el siguiente contenido:

No voy a comentarlo porque el código en sí es fácil de entender. Usando etiquetas HTML5, tenemos un article que tiene un header con el título -diciendo que no hay nadená– y un section con el contenido -siendo educado al decir que no hay nadená.

Nuestro loop.php deberá generar el mismo formato, pero con contenido dinámico. Además, un loop puede tener varios o un post.

Como se ve en el código, tenemos el bucle while -mientras haya un post, publicamos el post-.

A su vez, como en el loop-empty, creamos el article y le damos un id único con la función the_ID().

Además, diferenciamos entre una página estática o no. La única diferencia es que llamará a un template u otro.

Para el resto del formato llamamos al archivo content.php.

get_post_format devuelve falso, es decir, no lo usamos para nada, pero considero que es importante conocerlo porque con él se puede recrear el modo en el que Tumblr publica su contenido, teniendo distintos formatos si es un texto, un audio, una imagen, …

Seguimos, ahora con content.php, que solo contendrá el header y el section.

Aquí si voy a comentar:

El content-page.php tiene la misma lógica y es más simple:

¡Ya tenemos el loop terminado! Ahora hay que llamarlo en cada template genérico, cada uno con sus diferencias.

Como he decidido preguntar dentro del loop.php si es una página o no, nuestro single.php y page.php son idénticos:

En este momento no preguntamos por el loop-empty porque si no se encuentra nos dará un error 404, cuya plantilla es:

Por último, nuestro archive.php es el más “dinámico”, ya que tiene que diferenciar cuando tiene que mostrar según qué categoría, que etiqueta, que autor o que fecha.

Al principio puede parecer extraño tener tantos archivos divididos, pero a la larga ayuda mucho a la escalabilidad.

Por ahora ha sido bastante información.

Mucho código nuevo, pero si se analiza, siempre se está respetando el mismo formato.

Puedes descargarte el contenido aquí: Alisios v0.1.3