I wanna be a wordpress rockstar PARTE I

¡Comienza la saga!, I wanna be a wordpress rockstar es mi propia guía para no ñoños  (es decir sin programar una línea de código) para llegar a ser ser un verdadero rockstar de wordpress.

¿Qué vamos a aprender?, la idea es llegar a manejar este popular CMS de manera tal que te permita no sólo generar sitios estáticos o tipo blog, sino que llegar a personalizar los temas de manera tal que te permita llegar a un nivel similar al de una aplicación web; logrando una diferencia sustancial y cualitativa por sobre el resto de los mortales usuarios de wordpress.

¿Qué necesitas saber?, idealmente ser un usuario activo de wordpress, eso quiere decir que ya has hecho una instalación del mismo, sabes crear páginas, entradas, menúes, widgets, has instalado tus propios plugins, has experimentado con temas, en fin un «power user» con todas sus letras.

¿Cómo vamos a lograrlo?, mi filosofía ha sido siempre la de entender las cosas, si se cómo funciona, sabré explicarlo, adaptarlo, usarlo y tomar beneficio de ello. Por eso pretendo explicarte cómo funcionan algunas cosas, para así después poder entender mejor el funcionamiento de varios plugins de apoyo que necesitaremos a lo largo de esta guía.

Esto comienza… ¡AHORA! 🙂

CUALQUIER CONTENIDO ES «POST»

Realmente no se si alguien lo haya explicado de esta manera, pero tomando la filosofía de entender las cosas, qué mejor que mirar un poco cómo se almacena la información de wordpress, entender esto es crucial para en futuras entregas facilitar enormemente el entendimiento y uso de algunos plugins de apoyo que en su debido momento iremos utilizando.

La base de datos de wordpress (donde se guarda la información y puedes revisar a través de un un administrador web como phpMyAdmin),  contiene apenas 11 tablas (no palos, sino que contenedores distintos de información como las hojas dentro de un libro de una hoja de cálculo). De estas, 2 guardan la gran parte de la información de un sitio web completo.

Estas tablas son wp_posts y wp_postmeta. En resumen estas dos tablas guardan no sólo «Entradas» y «Páginas», sino que también guarda la información de «Medios» y también de los «Menús» que configuras en la sección Apariencia.

Para saber a qué tipo de registro nos referimos, wordpress ocupa un campo crucial en todo esto, y es el llamado «post_type«, así una entrada de blog tendrá como valor simplemente «post», las páginas tendrán como valor «page», los archivos de Medios «attachment» y las entradas de menú «nav_menu_item» (hay otros tipos que no son útiles en este momento).

Resumiendo esta parte, es muy importante saber y reconocer que cualquier contenido es «post», ya que esto nos permitirá entender que cada «post» independiente del tipo, comparte propiedades en común con el resto de los «post»; estas propiedades en común son:

  • Autor
  • Fecha
  • Contenido (donde escribimos texto en el editor WYSIWYG de wordpress)
  • Título
  • URL (llamada guid en la base de datos, que indica la URL completa del post)

Entre otra información menos «relevante» para estos efectos.

Ahora como «power user» te preguntarás ¿dónde se guarda el resto de la información asociada a un post?, por ejemplo, muchos temas habilitan configuraciones extras para cada post, habilitando cajas adicionales para indicar posiciones de títulos, fotografías, contenidos en cajas personalizadas, inclusive los «content builders».

Ahí entra en el juego una segunda tabla denominada wp_postmeta y como su nombre lo indica poco intuitivamente para un no-ñoño guarda los «metadatos» relacionados a un post (es decir, la información adicional de un post).

Esta tabla es aún más sencilla que la anterior (no te asustes, esto es referencial y es sólo para entender cómo funcionan las cosas, no para hacer una consulta directa a la base de datos o ir más allá) y consiste en tan solo 3 datos que son:

  • post_id (es decir al post al que pertenece este registro)
  • meta_key (el nombre del metadato)
  • meta_value (el valor)

Hasta este punto, siguiendo la idea, tenemos asegurado el 50% de nuestro éxito como wordpress rockstar y te voy a explicar por qué:

Las «aplicaciones» y sitios personalizados vía wordpress, basan su funcionamiento en post types personalizados, y usan la interfaz del CMS para mostrar y completar esta información, haciéndola «transparente» al usuario.

Un ejemplo sencillo: si queremos hacer un sitio web que aparte de tener un Blog y Páginas estáticas, tenga un apartado de «Productos», donde estos tengan una representación única y sean completados con sus respectivos atributos sin mezclar todo en el contenido, pudiendo generar una plantilla exclusiva para este tipo de contenido que se vea bien, y que además sea capaz de recibir filtros y búsquedas, ya es de nivel rockstar, ¿no crees?.

De un punto de vista teórico en este momento no es más que poder crear un Post Type personalizado (sí, se puede) que permita reunir todas las características que yo quiera de cada producto (a través de postmeta), aún debemos revisar el «orden» de estos posts, esto a continuación.

CUALQUIER «ORDENAMIENTO» ES TAXONOMY

Aquí de buenas a primeras no se entiende mucho el título, pero de a poco toma forma, si hacemos memoria de nuestra experiencia como «power user» nos acordaremos de que al momento de crear una Entrada, una de las cosas que hacíamos antes de publicarla, era marcar una categoría o agregar una etiqueta.

Ahora el notición, desde un punto de vista de datos, una categoría y una etiqueta son «lo mismo»; la única diferencia entre una y otra es que las categorías son taxonomías jerárquicas y las etiquetas no. Sin embargo todas forman parte de lo que conoce como sistema de clasificación o taxonomía.

Otra cosa que se debe entender y tener muy claro, es que las taxonomías no son exclusiva de un post type. ¿What?, quiero decir que estos registros que nos permiten clasificar las entradas (como las categorías y los tags) no son únicos y pertenecientes a un tipo de post (como las entradas de blog), sino que si nosotros quisiéramos estos podrían ser transversales a todos los post types, o sólo a algunos.

En castellano, te estoy queriendo decir que si quisiéramos, podríamos tener páginas usando las mismas categorías que en «Entradas» y también usar «Tags» en páginas, aunque en la práctica no se haga, ya que se limita el uso de ciertas características en algunos post_type. (Sería improcedente en nuestro ejemplo que se mostraran categorías de productos para entradas de blog).

Comprendiendo estas dos cosas, ya estamos ad portas de entrar en materia y jugar con wordpress en la próxima entrega de esta guía.

Si te gustó, déjame un comentario 🙂

Publicado por

mbrionesc

Desarrollador por esencia, creador de aplicaciones y soluciones basadas "en la nube", luego de años trabajando para terceros tras bambalinas, trabajo mis ideas y proyectos a través de BPL.cl