Wordpress
Wordpress
A continuación, te mostramos una serie de características que han hecho de Wordpress el líder
en el mercado de soluciones CMS.
1. Facilidad de uso.
2. Es multidispositivo.
3. No es necesario contar con conocimientos de programación para comenzar a usarlo.
4. Mejora el SEO.
5. Permite cambiar de forma rápida el diseño y estructura de nuestro sitio web.
6. La integración de WordPress es sencilla
7. Plugins. Cuenta con un gran número de plugins gratuitos
8. Escalabilidad. Es sistema que se adapta de forma muy fácil a las necesidades que nos
puedan ir surgiendo.
Wordpress.com
Creación de una web en Wordpress.com
El proceso de creación de una web en wordpress.com es sencillo y rápido. Actualmente está
dividido en seis simples pasos. Basta con entrar en wordpress.com1 y pulsar en alguno de los
botones que nos invitan a crear un sitio web o a registrarnos en su servicio si no somos ya
usuarios.
Para registrar una cuenta de usuario en Wordpress es preciso crear, al menos, una web. Por
eso el proceso de crear una web y registro nos guiarán por los mismos pasos.
El menú de usuario
Cuando entramos a la dirección de nuestro blog en WordPress.com, habiendo iniciado sesión
de WordPress (con nuestro usuario y contraseña), veremos que, además del propio blog,
disponemos de una serie de opciones extra situadas en un menú superior.
Todas las opciones que aparecen nos llevarán a un panel de administración desde el que
gestionar nuestra web (aunque ajeno a ella)
De hecho, este menú aparecerá (con ciertas modificaciones) siempre que accedamos a un blog
alojado en wordpress.com teniendo activa nuestra sesión de usuario, dado que no es un menú
exclusivo para labores de creación y edición de contenido. Incluye otras funcionalidades de la
red de blogs de wordpress.com
A continuación, te mostramos alguna de estas opciones que nos ofrece el menú de usuario en
Wordpress
1. Mis sitios
2. Lector
3. Estadísticas de visitas
4. Crear nueva entrada
5. Perfil en Wordpress
6. Notificaciones
7. Personalizar
En la documentación de descarga encontrarás más información sobre cada una de estas
opciones.
Gestión de la Web
Casi todas las opciones que encontramos en los menús que vimos en el apartado anterior nos
llevan a un panel de gestión dentro de wordpress.com. Desde este panel podremos consultar
estadísticas, cambiar nuestro plan de wordpress.com (para elegir uno de pago con más
funcionalidades), publicar páginas y entradas, personalizar el aspecto del blog, y realizar otros
ajustes.
Wordpress.org
Hosting
La versión de wordpress.org es también conocido como Wordpress autohospedado (self-
hosted), en referencia a la necesidad de contar con un alojamiento propio a diferencia del
servicio alojado en wordpress.com.
Existe una gran variedad de servicios de hosting y servidores entre los que elegir a la hora de
ubicar nuestra web. A veces, cuando trabajamos para un cliente podemos estar sujetos al uso
de un hosting o servidor que ya tenga contratado. En otras ocasiones tendremos que ser
nosotros quienes recomendemos o elijamos directamente entre un servicio y otro. La elección
debe hacerse según criterios muy variados: fiabilidad, precio, facilidad de uso, soporte,
seguridad, tamaño del proyecto, posibilidad de alojar otras webs o servicios...
Requisitos mínimos
Es importante tener en cuenta los requisitos mínimos de la versión de Wordpress que vayamos
a instalar. No son requisitos demasiado exigentes, puesto que no requieren las últimas
versiones de PHP ni de MySQL.
El hecho de que Wordpress no exija las últimas versiones facilita que pueda ser usado en la
mayoría de hostings, aunque estos no estén siempre actualizados.
Sí que debemos tener en cuenta que no debemos usar características propias de las versiones
superiores a las soportadas por la última versión estable de Wordpress, si nuestra intención es
escribir código que vayamos a compartir
En esta página observamos una división de contenidos que será constante en todo el panel de
administración: dos barras de menús en las partes superior e izquierda, y un bloque principal
ocupando el espacio restante.
Contenido principal
Es la parte que variará dependiendo de la página del panel en la que nos encontremos.
Veremos en detalle el contenido de las más importantes, pero el esquema es bastante similar
en la mayoría de ellas.
Entradas
La sección de entradas seguramente se convertirá en la sección que más visites dentro del área
de administración de Wordpress. Es el lugar en el que crearás, editarás, categorizarás y
etiquetarás contenidos para tu sitio montado con Wordpress.
El tamaño máximo de los archivos que podemos subir viene determinado por los parámetros
de nuestra instalación de PHP por lo que, dependiendo del hosting que estemos usando, quizá
no podamos modificarlo.
Páginas
La gestión de las páginas en WordPress es muy similar a la de las entradas. Las principales
diferencias son la ausencia del extracto y de los tipos y la aparición de una nueva caja con
“Atributos de página”.
Desde este nuevo apartado podremos establecer un orden jerárquico para las páginas
(pudiendo crear “subpáginas” o “secciones”). Además, podremos seleccionar la plantilla que se
usará para mostrar la página. Las opciones disponibles en este punto dependen del tema,
aunque con unos pocos conocimientos del diseño de temas no nos será difícil crear plantillas
nuevas.
Comentarios
Esta sección nos permite revisar y administrar nuestros comentarios. Podremos consultarlos,
filtrándolos por su estado actual y modificar ese estado en lote o de forma individual.
Plugins
Un plugin en WordPress es un archivo o conjunto de archivos que amplían o modifican la
funcionalidad del núcleo o de algún otro plugin ya activo.
Los plugins pueden actuar de diversas formas. Pueden modificar el aspecto de la parte pública,
pueden añadir o modificar opciones del panel de administración, pueden crear widgets o
shortcodes, o pueden realizar tareas invisibles para usuarios y administradores.
En la comunidad de WordPress, existen numerosos plugins con los que podemos cubrir
muchas de las necesidades que nos puedan surgir.
Principales Plugins
En el directorio de descarga de plugins de WordPress, podemos encontrar 47.636 plugins
disponibles con un número total de descargas de 1.460.752.
En el siguiente vídeo, vamos a mostrar 6 de los principales plugins que puedes encontrar en
este directorio.
MÓDULO 3. DESARROLLANDO WORDPRESS
Para el desarrollo de Wordpress, tendrás que poner en práctica tus conocimientos de PHP,
HTML, CSS, JavaScript y MySQL.
Recursos
Núcleo
El núcleo de WordPress es la base del CMS, que nos aporta la mayor parte de la lógica y las
funcionalidades. No debemos modificarlo, ya que podríamos causar un funcionamiento
inesperado. Además, cualquier modificación podría perderse al instalar una nueva
actualización.
Sin embargo, conviene acceder a él para comprender su funcionamiento y con él, la forma en
la que podemos modificarlo mediante nuestro propio código en los temas y plugins. Casi todo
el código está comentado. Muchos archivos incluyen al inicio un bloque de comentario
aportando una descripción de lo que hacen y otra información útil. También la mayoría de
funciones cuenta con una descripción de lo que hacen, así como de los parámetros que
esperan y que devuelven o la versión de Wordpress en la que fueron incluidas.
Referencia a funciones
Como has visto al comienzo de este módulo, en esta página podremos buscar fácilmente una
función y consultar su descripción, los parámetros, el valor devuelto, el changelog y la propia
definición de la función. Esta es la misma información que vemos en los archivos PHP, y no es
casualidad.
Esta referencia está construida a partir de la información del propio código, haciendo uso de
PHPDoc, lo que nos asegura que esté siempre actualizada. En ese sentido, será cuestión de
comodidad acudir según el caso a esta referencia o al propio código de los archivos.
Coding Standards
Con el objetivo de que WordPress siga siendo un CMS de código legible y sencillo, nacen los
Coding Standards.
Condiciones "Yoda"
En las comparaciones lógicas se deben poner las variables en la parte izquierda y las
constantes, literales o funciones en el lado derecho. Así, por ejemplo, en caso de que
olvidemos un signo de igual (=) al ir a hacer una comparación de igualdad (==), se lanzará un
error en lugar de asignarse un valor de forma errónea.
La base de datos
Aunque a nivel de usuario un post y una página sean cosas diferentes, internamente
Wordpress las trata del mismo modo. Ambos tipos de contenido se guardan en la misma tabla
(wp_posts) con los mismos campos de información. Lo único que los diferencia y permite que
puedan ser tratados (y sobre todo, mostrados) de forma diferentes es el campo post_type.
Pero las páginas y las entradas no son dos únicos post_types posibles. Por defecto, Wordpress
cuenta con cinco tipos diferentes:
Entrada/Post (‘post’)
Página (‘page’)
Adjunto (‘attachment’)
Revisión (‘revision’)
Elemento de menú (‘nav_menu_item’)
Loop & Query
Loop como su nombre indica se trata básicamente de un bucle, que recorre los posts a
manejar (ya sean varios o uno solo) y actúa sobre cada uno de ellos de la forma que se precise.
Así es como se presenta habitualmente el Loop:
WP_Query
Cuando accedemos a una dirección de WordPress, ya sea para consultar una página estática,
leer una entrada específica, o consultar el archivo de entradas para una determinada
categoría, WordPress realiza automáticamente la consulta necesaria a nuestra base de datos.
Si, por ejemplo, queremos ver todas las entradas categorizadas como "tecnología", el sistema
lo detectará gracias a la url y rescatará los últimos artículos de esa categoría. La propia
consulta, sus resultados e información extra se guardan en la variable $wp_query, que queda
preparada para ser usada en el "Loop".
En cada iteración del bucle, otra variable global llamada $post va tomando los datos de cada
uno de los posts a mostrar permitiendo acceder a ellos fácilmente desde las plantillas. Para
conocer todo lo necesario sobre esta clase es conveniente revisar su documentación. Veamos
unos ejemplos de uso:
Hooks
La forma en la que una pieza de código interactúa con otra en WordPress son los hooks. Los
usan los plugins para interactuar con el núcleo de la plataforma o con otros plugins, pero
también se usan dentro del propio núcleo para relacionar unas partes con otras. Son eventos
disparados por acciones y filtros, que nos permiten asociar nuestras propias funciones.
Acciones
Las acciones nos permiten agregar o quitar código en diferentes puntos de la ejecución. Para
añadir nuestro propio código en una determinada acción usaremos la función add_action
indicando el nombre del filtro al que se "enganchará" y el nombre de la función que se
ejecutará.
Como parámetros adicionales podemos indicar la prioridad (para indicar el orden de ejecución
en caso de que haya varias funciones asociadas al filtro), y el número de argumentos que
aceptará la función.
Filtros
Los filtros nos permiten modificar los datos que procesa Wordpress. Al contrario que las
acciones, no nos permiten añadir ni eliminar código. Solo podemos reemplazar datos
(generalmente variables).
Podemos añadir nuestro propio código a un filtro mediante la función add_filter, que es
llamada de la misma forma que add_action, pero que debe asociarse a un filtro en lugar de a
una acción.
El listado íntegro de filtros de WordPress puede consultarse en la
documentación disponible en el Codex.
Dónde añadir nuestro código
Como os comentábamos a la hora de incluir código en nuestro sitio WordPress, aunque
estemos siguiendo un manual, debemos plantearnos si la forma en la que se actúa en él es la
más práctica para nosotros en nuestra situación. Veamos las ubicaciones habituales para
nuestro código en WordPress:
functions.php
Este archivo forma parte de cada tema de wordpress. Nos permite extender funcionalidad,
pero debemos tener en cuenta que, al tratarse de un archivo dependiente de un tema
específico, las modificaciones que hagamos se perderán si se cambiamos de tema.
Probablemente esta sea la mejor opción cuando añadamos algo con un fuerte componente
visual, muy asociado al tema en concreto. Hay que tener en cuenta que si cometemos algún
error en este archivo es probable que no podamos acceder a nuestro wordpress (nos
aparecerá la página en blanco).
Plugins
Los plugins son independientes de los temas, por lo que si queremos añadir un
comportamiento y que este se pueda mantener independientemente del tema que usemos
probablemente esta sea una opción a considerar. Hay que tener en cuenta que los plugins
pueden activarse y desactivarse a voluntad en el panel de administración, lo cual aporta un
control extra. Si cometemos algún error en el código de un plugin, wordpress lo deshabilitará,
pero la web funcionará sin problema.
Existe un tipo de plugins especial que no aparecen en el listado junto con el resto y por lo tanto
no pueden desactivarse. Estos plugins de uso obligatorio (Must Use Plugins) se instalan y
activan al copiarlos en el directorio "wp-content/mu-plugins".
MÓDULO 4. PERSONALIZANDO WORDPRESS
Una de las principales características de WordPress que lo hacen destacar por encima otros
CMS, es su vertibilidad a la hora de poder personalizar nuestro sitio web. En el siguiente vídeo
vamos a identificar 3 elementos clave a la hora de poder personalizar nuestra página web:
Themes (temas), Post y Plugins. En las siguientes pantallas profundizaremos sobre cada uno de
estos elementos.
Themes (temas)
A la hora de hablar de temas en WordPress debemos contemplar 3 posibilidades:
En función de las necesidades que plantee el proyecto que vayamos a desarrollar, debemos
contemplar alguna de estas opciones.
Objetivo: No es lo mismo realizar una web con una finalidad concreta y un uso
temporal (para anunciar un evento, por ejemplo) que una web que deba mantenerse
en el tiempo y crecer sin que la plantilla suponga limitaciones. Además, hay que tener
en cuenta que el diseño que elijamos debe servir para mostrar de la forma más
correcta el contenido de la web y para atraer al público y facilitarle encontrar lo que
busca.
Presupuesto / Tiempo: La cantidad de dinero disponible y el plazo para el desarrollo
son determinantes, aunque lo deseable es que estén alineados con los objetivos a
cumplir.
Funcionalidades / Flexibilidad: Podemos encontrar plantillas para blogs, portafolios,
webs corporativas, tiendas online... y también temas lo suficientemente completos
para dar cabida o todos estos tipos de proyectos. Estos últimos aportan
evidentemente una mayor flexibilidad, pero en algunos casos pueden significar una
complejidad extra innecesaria.
Personalización: Algunos temas están preparados para modificar su aspecto
directamente desde el panel de administración de Wordpress sin necesidad de tener
conocimientos de diseño o CSS. Estos temas permiten por ejemplo cambiar las
tipografías o el esquema de colores de la web.
Calidad: ¿Cómo podemos garantizar que el código tiene la calidad deseable
(rendimiento, SEO, etc) y que el tema funciona correctamente? Un buen punto de
partido puede ser consultar la experiencia del desarrollador y las opiniones de otros
usuarios.
Mantenimiento: También debemos consultar si el tema está correctamente
mantenido, es decir, si recibe actualizaciones en caso de detectarse errores o para
adaptarse a nuevas versiones de Wordpress.
Soporte: Es importante, cuando usamos temas de terceros, contar con alguna vía de
soporte a través de la cual poder hacer consultas al desarrollador en caso de que nos
encontremos con algún problema.
Extras: Algunos temas incluyen plugins e integran plugins para, por ejemplo, construir
las páginas “arrastrando y soltando” (drag and drop) elementos4, o sliders para
mostrar y animar diferentes contenidos en un mismo espacio. De nuevo, habrá que
valorar si estos extras suponen un valor añadido o no para nuestro propósito.
Otras consideraciones: Dependiendo de nuestros objetivos, puede ser esencial
encontrar un tema que funcione correctamente en cualquier tipo de dispositivo y
tamaño de pantalla (algo que podemos considerar esencial en casi todos los casos
actualmente), o contar con traducciones a diferentes idiomas.
Crear un tema hijo a partir de otro será recomendable cuando queramos hacer pequeñas
variaciones que el propio tema no nos permita realizar desde el área de administración, y
siempre que no vayamos a cambiar de forma drástica su estructura y su funcionalidad.
Starter themes
Sin embargo, también existen temas a modo de “esqueleto” que nos facilitan el desarrollo de
nuestros propios temas, puesto que cuentan con el código básico y con un diseño mínimo que
nos servirá de punto de partida ahorrándonos tiempo. Algunos de los más populares son
Underscores, Components, Bones, Slekeleton, FoundationPress. También existen otros como
Sage, que está pensados para ofrecer un flujo de trabajo más profesional al desarrollador
(usando herramientas como Gulp/Bower, SASS).
Una simple búsqueda de “starter themes” para WordPress nos ofrecerá más opciones y nos
permitirá consultar el estado de cada uno de los proyectos para elegir el que más nos
convenga.
Themes frameworks
Además de los citados starter themes, contamos también con los llamados “theme
frameworks” en los que el tema padre incluye toda la parte de programación (archivos. php
y .js) para relegar al tema hijo solo lo referente al estilo (CSS y áreas de widgets), aunque
también contaremos con el archivo functions.php en caso de necesitarlo.
Creando un tema
Para crear un tema solo es necesario tener un buen conocimiento de HTML y CSS. Conocer
PHP nos permitirá ampliar y configurar ciertas funcionalidades, pero la mayoría de las líneas
que tendremos que escribir en PHP cuando creemos temas son llamadas a funciones bien
documentadas.
Como vemos hemos incluido la información básica sobre nuestro tema, en la que debemos
incluir junto a la palabra “Template” el nombre del tema del que heredaremos. Esa referencia
a la plantilla (“template”) y la linea final que importa sus estilos son fundamentales para que
nuestro tema sea su “hijo”.
Plantillas
Las plantillas son los archivos que generarán las páginas a mostrar a los visitantes en función
de su petición. Estos archivos incluyen la estructura HTML, código PHP y las llamadas etiquetas
de plantilla (template tags)17 que son funciones que nos facilitan obtener elementos o
información de nuestro wordpress.
Al estar creando un tema hijo, ya contamos con las plantillas del tema padre, que podremos
reescribir o ampliar. En caso de estar creando un tema completamente nuevo, es preciso crear
al menos una plantilla llamada index,php que sería la que se usara para mostrar todas las
páginas de nuestro sitio.
Lo normal es que queramos usar plantillas diferentes para diferentes páginas de nuestra web.
Para crear estas plantillas bastará con añadir un DocBlock con la etiqueta “Template Name”.
Functions.php
Podemos añadir un archivo llamado functions.php en el directorio raíz de nuestro tema para
crear cualquier función a la que queramos llamar en las plantillas de nuestro tema.
Post personalizados
Podemos crear todos los tipos de post que queramos (y luego personalizar su comportamiento
o presentación). Al hacerlo, nos aparecerán en nuestro panel de administración nuevas
secciones permitiéndonos crear estos nuevos tipos de contenido.
Además, aunque todos los tipos de posts mantengan la misma estructura en la base de datos,
podemos añadir campos personalizados a medida de cada tipo.
Campos personalizados
Si queremos solicitar unos campos específicos en un tipo de post específico, podemos
registrarlos con la función register_meta. La función que realice esta tarea la asociaremos al
hook 'init'.
Desarrollo de plugins
Consideraciones previas
Nombre del plugin: Cuando creamos un plugin debemos elegir un nombre que
explique su función pero que no tenga ya otro plugin de los disponibles en el
repositorio oficial. De lo contrario WordPress pensará que estamos usando ese otro
plugin.
Prefijar código: Igual que sucede con el nombre del plugin, es conveniente distinguir
nuestras variables y funciones del resto de las que pueda tener una instalación de
WordPress. La mejor manera de conseguirlo añadir un prefijo a nuestras funciones a
todo nuestro código, desde los archivos a las funciones y variables para evitar posibles
colisiones con otros que coincidan en el nombre.
Estructura clara: Aunque un plugin puede contar de un único archivo, lo normal es que
el plugin se estructure en una carpeta que contenga a su vez otras con los diferentes
archivos (.php, .css, .js, imágenes...).
Licencia: Wordpress se distribuye bajo una licencia GNU GPL y todo plugin
desarrollado para él debe tener esta licencia u otra que sea compatible con ella.
Aunque no es obligatorio, si es conveniente incluir en nuestro plugin un archivo
llamado license.php con toda la información del tipo de licencia.
El autor solo necesita conocer el nombre del shortcode y escribirlo entre corchetes ( [ ] ). El
texto se guardará en la base de datos de la misma forma en la que lo escribió, pero al rescatar
la información, pero al mostrar esa página al usuario en la parte pública, ese pequeño código
se sustituirá por la cadena que devuelva la función que hayamos asociado. Esa cadena puede
incluir código HTML, por lo que los autores podrán añadir cualquier tipo de contenido sin
necesidad de saber siquiera HTML.
La función que usemos en el shortcode recibirá tres argumentos. El primero, un array con los
posibles atributos que se pasen en la llamada:
El tercer argumento será el propio nombre del shortcode, que en nuestro ejemplo no nos hará
falta.
Para profundizar en el desarrollo de todo tipo de plugins, uno de los mejores recursos es el
Manual de Plugins oficial.
Creando un widget
WordPress cuenta con una clase para manejar widgets llamada WP_Widget y ubicada en wp-
includes/class-wp-widget.php. Para crear nuestro propio widget crearemos una clase que
extienda de ella. Bastará con señalar los parámetros básicos de nuestro widget y pasárselos al
constructor de la clase padre.
Tendremos que registrar nuestro widget después de que se registren los widgets propios del
núcleo. Para ello usaremos la función register_widget asociada al action hook widget_init.
Los dos parámetros que recibe nuestro método widget están debidamente documentados en
el método de la clase padre WP_ Widget: $args es un array que contiene argumentos del área
de widgets e $instance es otro array que contiene las propiedades del propio widget. Veamos
cómo podemos usar estas últimas.