Blog

WordPress como debe ser: Capítulo 1, entendiendo WordPress

WordPress como debe ser, es una serie de tutoriales orientados a enseñar WordPress empezando por los básicos hasta temas para expertos, por medio de capítulos guiados en dificultad y con ejemplos reales.

 Entendiendo WordPress

No cabe duda que si estás por aquí es por que te decidiste por WordPress (y puedes saltarte toda esta introducción). Sin embargo no está de más mencionar algunas características de WordPress para que te convenzas que es el CMS para tu próximo proyecto.

  • Existen más de 72 millones de sitios web corriendo WordPress
  • Del 20% al 25% de sitios en el mundo están hechos en WordPress
  • Tiene más del 50% del marketshare contra los demás CMS’s
  • En promedio se pagan $50 por hora de trabajo
  • Es el CMS con mayor aportación de la comunidad

WordPress desde su inicio fue hecho como plataforma de blog’s ( eso nadie lo discute) y como habrán visto en varios foros, se discute eso que este pequeño  no fue hecho para manejar sitios  web. Pero, historia pasada; es un argumento sin validez, pues WordPress ha evolucionado para manejar contenidos de diversos tipos por medio de sus post types y categorizarlos por taxonomías.

En lo personal he trabajado más de 100 sitios web en WordPress, de diversos tamaños, aplicaciones, diseños, etc… Y les digo que NUNCA he tenido problemas con ello, y el hecho de querer utilizar Drupal, Joomla! u otro CMS es cuestión de gusto. Yo como desarrollador de WordPress lo defenderé (por que es el que mejor se utilizar) como lo harán los fanáticos de otros CMS’s (no realmente no lo soy, simplemente me parece un muy buena opción).

Entonces, por X o Y razón estamos aquí queriendo aprender a usar WordPress. ¡Empecemos!

Aclaración: Este tutorial es para desarrollar en WordPress, no para aprender la administración del mismo.

El núcleo

Como ya lo mencioné, WordPress nació como un manejador de contenidos para blogs, he allí que tiene 2 tipos de contenidos principales, las entradas (post) y lás páginas (page). Existen otros tipos de contenidos que ahora no veremos que son, los adjuntos (attachments), menús (nav).

WordPress guarda todo lo que tiene que ver con esos contenidos en la tabla, wp_posts. Donde tiene campos importantes como son:

  • Título (post_title)
  • Contenido (post_content)
  • El extracto, una introducción al contenido (post_excerpt)
  • El slug (post_name)
  • El guid o ruta base (guid)
  • El ID (ID, o post_ID)
  • Post parent (el ID del post padre en el caso de lás páginas) (post_parent)
  • Y mi favorito, post_meta (este esta en wp_postmeta) pero es un campo importantísimo para guardar data relacionada al contenido

Entendido eso, lo primero que tenemos que saber es la anatomía de un tema.

Jerarquía de WordPress

Con ello podemos ver en resumen que (con más detalle aquí):

  • front-page.php – Será nuestra página de inicio
  • page.php – Será la plantilla de una página corriente
  • index.php – Será la plantilla del blog
  • single.php – Será la de nuestra la plantilla de un post (entrada)
  • functions.php – Donde podrás colocar tus filtros, acciones o modificaciones al comportamiento normal de WordPress

Y otras plantillas que no son tan necesarias en este momento, como:

  • category.php – Cuando estamos en una categoría del blog
  • 404.php – Se muestra cuando no se encuentra la página
  • search.php – En resultados de búsqueda
  • archives.php – Para los archivos mensuales, anuales, etc
  • author.php – Si deseamos mostrar información de un autor con sus artículos por ejemplo
  • attachment.php, image.php – Para mostrar los adjuntos o imágenes de alguna forma

Para hacer un tema se necesitan de 2 cosas: index.php y  style.css

style.css

Este archivo tendrá la cabecera que identifica al tema, dentro de nuestro administrador (Apariencia – Temas).

/*
Theme Name: Twenty Thirteen
Theme URI: http://wordpress.org/themes/twentythirteen
Author: the WordPress team
Author URI: http://wordpress.org/
Description: The 2013 theme for WordPress takes us back to the blog, featuring a full range of post formats, each displayed beautifully in their own unique way. Design details abound, starting with a vibrant color scheme and matching header images, beautiful typography and icons, and a flexible layout that looks great on any device, big or small.
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: black, brown, orange, tan, white, yellow, light, one-column, two-columns, right-sidebar, flexible-width, custom-header, custom-menu, editor-style, featured-images, microformats, post-formats, rtl-language-support, sticky-post, translation-ready
Text Domain: twentythirteen

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.
*/

(Esta la tome de WordPress, pero en resumen contiene el nombre, autor y versión, tipo de licencia, entre otra información)

La base de WordPress

Este CMS, está basado en loops, los loops son ciclos con ciertos argumentos que mandan a traer información de la base de datos y la imprimen con los tags que querramos.

En index.php, un simple loop podría ser:

<?php while ( have_posts() ) : the_post() ?>
Y aquí dentro tus tags...
<?php while; ?>

Una de las cosas que más me gustan de WordPress, es la limpieza de su código, en comparación con Joomla!, este solo te devuelve lo que explícitamente deseas y la facilidad en comparación con los nodos.

 Functions.php

Este archivo tendrá todas las funciones que en su momento modificarán comportamientos en un plugin, en un query de posts, o añadirán funcionalidad a nuestro tema.

Extendiendo WordPress

WordPress tiene 2 formas principales para modificar el comportamiento de un tema, de un query o un plugin. Estos son los hooks y filtros.

Hooks – Son “puntos” en WordPress donde puedes “enganchar” alguna función, agregando alguna funcionalidad en el proceso donde esta corriendo.

Ej. Cuando guardas un post, este corre el hook save_post, tu podrías mandar un correo al ser publicado un post, por medio del a función add_action, que veremos en ediciones posteriores.

Filters – Son, a diferencia del los hooks, puntos donde puedes modificar el comportamiento o salida del un “algo”, como lo dice su nombre, son filtros para datos.

Ej. Quieres ordenar siempre los posts por orden alfabético, utilizas el filtro pre_get_posts.

Los buenos temas y plugins tienen filtros y hooks en lugares estratégicos que te permite modificar sin tener que modificar el código base sino, en function.php

En el siguiente capítulo, empezaremos haciendo un tema, ya que tenemos una base teórica (yo se, es un poco aburrido).

¡Espero sus comentarios, con ejemplos de qué les gustaría construir con WordPress!