Un CMS, Content Manager System, es un sistema que nos permite organizar, programar y generar contenido para una web dentro de una estructura bastante elaborada. Todo CMS tiene pros y contras; elegimos uno, nos gusta, y nos especializamos en él. Hace años, me paso a mi con WordPress. No tenía ni ganas ni prisa ni ningún interés especial en conocer como funcionaba este CMS hasta que, casi sin querer, estaba desmontando, haciendo, rompiendo y creando themes y configuraciones extrañas. Hoy vamos a hablar de la organización interna de WordPress y sus themes.

Nacimiento de WordPress

WordPress nace con una característica fuertemente marcada, es un plataforma para blogs, pero a diferencia de los mismos CMS que nacen en su momento, este añade una característica que personalmente me gusta mucho. Puedes descargarlo e instalarlo en un hosting, bajo un dominio propio y teniendo el control total sobre lo que puedes hacer. Esta característica ha provocado que desarrolladores en todo el mundo pudiesen investigar y evolucionar sus ‘WordPress’ añadiéndoles muchas mas funcionalidades que las que ya tenía.

La importancia del desarrollo de themes en WordPress

Todas estas nuevas funcionalidades hacen de WordPress ya no solo una plataforma de blogs, sino una forma de hacer diseño web auto-administrable para el cliente final. ¿Cómo? Con los themes de WordPress. Esto no deja de ser una definición de los contenedores donde se va introducir el contenido, tanto en las partes estáticas como en las dinámicas. Antes de esto, era imprescindible, ademas de hacer el desarrollo de la parte pública de una web, hacer la parte privada, para que el cliente final pudiese hacer los cambios sin depender del diseñador o de desarrollador, con todo el problema que eso conlleva. Ahora, el diseñador web entrega un trabajo sobre una plataforma que es conocida por muchos profesionales del sector y que se rige por unas formulas fijas que le ayudan a comprender como ha sido el desarrollo bajo WordPress, ya que tanto las variables como métodos o funciones son las mismas.

La estructura de una instalación de wordpress es muy simple, de la raíz cuelgan 3 carpetas y unos cuantos archivos php sueltos que nos sirven para definir la instalación.

Las carpetas y archivos que nos interesan de la raíz son:
– carpeta wp-admin, que es el conjunto de archivos necesarios para administrar nuestro WordPress.
– carpeta wp-includes, ruta donde se encuentra en núcleo de WordPress(el famoso CORE).
– carpeta wp-content, el directorio donde se alojan nuestros contenidos concretos y la que es necesario modificar para adaptar las necesidades del cliente. Dentro de esta, encontraremos otras 3 carpetas básicas (existen más) para cada desarrollo: plugins, themes y uploads.
– archivo wp-config.php. Archivo imprescindible, ya que es quien hace la conexión con la base de datos y donde definimos algunas de las variables globales y características de rendimiento, como el prefijo de las tablas de la base de datos o la memoria máxima a utilizar.
– archivo wp-settings.php. Otro donde establecer determinadas mejoras dentro de la instalación (en versiones anteriores era más importante de lo que es actualmente).

Dentro del directorio wp-content, en la carpeta themes es donde tenemos que organizar jerárquicamente nuestro theme para que WordPress lo interprete y haga que funcione correctamente.

¿Quieres un theme de WordPress?

¿Quieres que te ayudemos a mejorar tu WordPress?Puedes contactar con nosotros cubriendo el formulario de contacto al pié de esta página o bien, llámanos al  677 118 505.

La organización de un theme de WordPress

La siguiente imagen (gracias a marktimemedia.com) explica que hace y como cada uno de las páginas que pueden existir o no en un theme.

wp-hierarchy

De la misma fuente podemos extraer un enlace a una herramienta que nos explicará también los detalles de la misma imagen. El recurso es http://wphierarchy.com/, y haciendo click en los bloques de texto, nos llevará al Codex de WordPress. Destacar que ambos esquemas son prácticamente iguales y siguen el estándar marcado por WordPress.

Los nombres de los archivos de un theme de WordPress

Dos cosas que explicar antes de seguir; un slug es el nombre amigable de una etiqueta o categoria y un id es identificador numérico de la misma. A partir de esto, desde cada archivo que forma parte del theme podrá estar personalizado para cada categoría, etiqueta, post,… Para que se muestren y siguiendo el orden de prioridad que da wordpress:

[half]Página de Inicio
home.php
index.php[/half]

[half_last]Los posts
single-{tipo_de_post}.php
single.php
index.php[/half_last]

[half]Las páginas
Platilla de página seleccionada (también pueden definirse de otra forma, eso ya lo explicaremos otro día)
page-{slug}.php
page-{id}.php
page.php
index.php[/half]

[half_last]Las categorías
category-{slug}.php
category-{id}.php
category.php
archive.php
index.php[/half_last]

[half]Las etiquetas
tag-{slug}.php
tag-{id}.php
tag.php
archive.php
index.php[/half]

[half_last]Las taxonomías personalizadas (o formas personalizadas de agrupar)
taxonomy-{taxonomía}-{término}.php
taxonomy-{taxonomy}.php
taxonomy.php
archive.php
index.php[/half_last]

[half]Listados de Posts personalizados
archive-{post_type}.php
archive.php
index.php[/half]

[half_last]Los autores
author-{nicename}.php (el nicename de un usuario)
author-{id}.php
author.php
archive.php
index.php[/half_last]

[half]Por fechas
date.php
archive.php
index.php[/half]

[half_last]Resultados de búsquedas
search.php
index.php[/half_last]

[half]Los 404 (Página no encontrada)
404.php
index.php[/half]

[half_last]Los adjuntos
{MIME_type}.php – (puede ser video.php, image.php, application.php,text.php….).
textplain.php
attachment.php
single-attachment.php
single.php
index.php[/half_last]

Y todo esto a grandes rasgos, sin meternos en condicionales de tipos ni funciones brutales ni consultas ni loops…Tampoco hemos hablado del «superarchivo» functions.php, que es el más importante para que un theme funcione correctamente, no creáis que me había olvidado…

¿Quieres un theme de WordPress?

¿Quieres que te ayudemos a mejorar tu WordPress?Puedes contactar con nosotros cubriendo el formulario de contacto al pié de esta página o bien, llámanos al  677 118 505.