En la actualidad WordPress se ha convertido por derecho propio en una plataforma apta para desarrollar páginas web en un tiempo record. Fácil de manejar por cualquier usuario poco avezado, muy extendido y con una cantidad de plugins y temas simplemente asombrosa. Además, de cara al desarrollador es muy sencillo de comprender y programar, siendo un estupendo punto de inicio de cara a aprender a programar en otros CMS más complejos o Frameworks, pues cuenta con los principios básicos de patrón Modelo Vista Controlador, Programación Orientada a Objetos, uso de plantillas y escalabilidad.
Hoy nos ocuparemos de conocer algunas herramientas que nos permitirán manejar nuestro WordPress de forma profesional, controlando tanto la instalación básica como el desarrollo e instalación de plugins y complementos directamente desde consola con WP-CLI. Además de integrar un sistema de control de versiones como Git, de forma que podremos en todo momento realizar pruebas de plugins, nuevas versiones de WordPress, o nuestros propios desarrollos en nuestra máquina local; para una vez probados y considerados estables podamos actualizarlos en producción. Por último utilizaremos Composer para la instalación de plugins y temas.
Instalando WordPress con WP-CLI
WP-CLI es una suite de linea de comandos que nos permite realizar una gran cantidad de tareas que sólo se podían realizar con anterioridad desde la zona de administración de web de escritorio. Tareas tan aburridas y repetitivas como descargar WordPress, configurar los archivos de la web, conectar con la BD, gestionar plugins, etc se pueden realizar por linea de comandos y mucho menos tiempo. ¿Te imaginas perder sólo un minuto en descargar, configurar y tener instalado un nuevo WordPress desde cero y desde consola? Es posible.
Cuales son los requerimientos:
- Entorno UNIX (OS X, Linux, FreeBSD, Cygwin); limited support in Windows environment
- PHP 5.3.29 o superior. En mi caso os garantizo que en PHP 7.0 funciona también correctamente.
- WordPress 3.7 o superior.
Desde la página oficial de WP-CLI podréis descargar e instalar en vuestro sistema de forma sencilla esta utilidad. Partimos de la base que la habéis instalado sin problema y es operativa. Para ello vamos a comenzar a instalar la última versión de WordPress con WP-CLI.
Nos dirigimos para ello a nuestra carpeta donde albergamos nuestros desarrollos web. En mi caso en /var/www
, así que cada cual adapte esta ruta a sus necesidades.
mkdir wp-pruebas cd wp-pruebas wp core download |
Con los sencillos comandos anteriores simplemente crearemos un directorio y descargaremos en él la última versión disponible de WordPress. Si vemos su contenido nos encontraremos la familiar estructura de archivos de WordPress. Si hemos sido observadores comprobaremos que la versión de idioma que nos instala es la americana. Deberemos de instalar pues nuestro paquete de idioma aparte, aunque primero procederemos a configurar nuestra instalación.
Es importante tener en cuenta que primero deberemos de haber creado en nuestro sistema una Base de Datos y unas credenciales de usuario para esta nueva instalación en MySQL.
A continuación crearemos el fichero wp-config.php
sustituyendo los datos entre llaves por los datos correctos.
wp core config --dbname={YOUR DATABASE NAME} --dbuser={YOUR DATABASE USERNAME} --dbpass={YOUR DATABASE PASSWORD} |
Una vez contamos con una instalación activa de WordPress con su correspondiente Base de Datos podemos configurar el resto de datos del site, como el nombre, crear un usuario con su password y una direccion de correo electrónico.
wp core install --url={YOUR DOMAIN NAME} --title={THE TITLE OF YOUR SITE} --admin_user={YOUR USER NAME} --admin_password={YOUR PASSWORD} --admin_email={YOUR EMAIL} |
Ahora sí, ya podemos incluir el idioma castellano (o el que corresponda a nuestra instalación):
wp core language install es_ES --activate |
Todas estas operaciones en sí con un poco de práctica apenas nos durará un minuto y nos habrá evitado realizar estas operaciones manualmente con unos comandos de consola que son realmente sencillos de recordar. Este será el resultado final una vez entres al nuevo site creado:
Ahora pasaremos a preparar un entorno de desarrollo con control de versiones con Git.
Control de versiones con Git y WordPress
Si te dedicas al desarrollo es más que probable que tengas instalado un sistema de control de versiones. Y probablemente utilices también Git. En caso de que no conozcas las ventajas de un control de versiones te dejamos con esta breve introducción ue seguro que te convence. Y si necesitas un tutorial de instalación de Git aquí tienes uno muy completo.
Una vez tengamos Git instalado, y siempre en el directorio en donde se encuentra nuestro proyecto de WordPress comenzaremos por iniciarlo desde consola.
git init |
A continuación procederemos a crear el archivo .gitignore
en el mismo directorio y editarlo para que Git ignore ciertas rutas y directorios. En dicho fichero incluiremos las siguientes lineas.
# Ignore wp-config.php and .htaccess wp-config.php .htaccess # Ignore the wp-content directory /wp-content # Don't ignore some-theme !/wp-content/themes/some-theme |
Quizás os parezca un poco sorprendente esta configuración pero tiene su explicación:
- Ignoramos el fichero
wp-config.php
porque los datos de conexión a Base de Datos no deben de conservarse dentro del repositorio. Además los datos de conexión de la versión de producción seguro que tiene unos datos diferentes y no debemos de poder reemplazarlos con una actualización realizada con Git. - De los ficheros y carpetas dentro de
wp-content
tampoco deberemos de conservar copia en el repositorio por los siguientes motivos: los temas por defecto se actualizarán automáticamente cuando instalemos WordPress; en cualquier caso podemos conservar copia de alguno si se trata de un tema comprado o es un tema que hemos realizado nosotros mismos. En el caso de plugins en el siguiente apartado explicaremos cómo gestionarlos con composer y por lo tanto no deberemos de conservar copia. Y por último la carpeta uploads tampoco guardaremos copia porque existirán diferencias probablemente entre los ficheros de desarrollo y producción. - Las copias de seguridad de la Base de Datos tampoco se almacenará en Git. Es mejor que tengas una política aparte para conservar copias diarias fuera del repositorio.
Pasemos llegados a este punto a instalar los plugins con Composer.
Instalando plugins de WordPress con Composer
¿Cuanto tiempo perdemos instalando una y otra vez los mismos plugins para cada nuevo desarrollo de WordPress que realizamos? Una tarea aburrida y monótona que se puede realizar de forma sencilla por medio de la gestión de paquetes y dependencias de PHP composer. Por medio de esta fantástica utilidad que se puede utilizar en cualquier proyecto de PHP podemos ahorrarnos un montón de trabajo aburrido y monótono instalando y configurando plugins.
De hecho contamos con un interesante repositorio de composer para WordPress donde encontraremos prácticamente cualquier plugin o tema gratuito de WordPress.
Comenzaremos creando un fichero composer.json
en el mismo raíz del proyecto, obligatorio en cualquier proyecto desplegado con composer. Dicho archivo utiliza como sintaxis JSON, en donde por ejemplo podremos incluir el siguiente código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | { "name": "oscargascon/new-site", "description": "My brilliant WordPress site", "repositories":[ { "type":"composer", "url":"https://wpackagist.org" } ], "require": { "wpackagist-plugin/amazon-web-services":"*", "wpackagist-plugin/amazon-s3-and-cloudfront":"*", "wpackagist-plugin/contact-form-7":"*", "wpackagist-plugin/wordfence":"*", "wpackagist-plugin/wordpress-seo":"*", "wpackagist-plugin/akismet":"dev-trunk", "wpackagist-plugin/captcha":">=3.9", "wpackagist-theme/hueman":"*" }, "autoload": { "psr-0": { "oscargascon": "src/" } } } |
Simplemente siendo un poco observadores en la sintaxis podréis comprobar cómo he incluido dentro del contenedor require los plugins o temas que quiero que se instalen automáticamente. Generalmente siempre instalamos los mismos así que es bueno tener a mano una copia de nuestro composer.json
genérico en cada instalación nueva. Si observáis con mayor atención comprobaréis que podemos incluso añadir la versión exacta del plugin que queremos añadir, por si conocemos alguna incompatibilidad. Si no instalará la versión más reciente.
A continuación realizaremos la instalación con composer con el siguiente comando desde consola:
composer install |
Activar los plugins y temas desde consola
Naturalmente una vez instalados los temas y plugins aún nos quedaría la tediosa labor de activarlos manualmente. Pero también nos podemos evitar estas tareas nuevamente con la ayuda de WP-CLI. Activaremos pues primero los plugins:
wp plugin activate --all |
Y si entramos al área de administración comprobaremos que los plugins se encuentran instalados y activos:
Ahora activaremos el tema Hueman que hemos incluido también en nuestro composer.json:
wp theme activate hueman |
Y al entrar a nuestra web veremos cómo hemos activado el tema.
Primer commit y subir al repositorio con Git
Una vez tengamos ya una versión mínima de nuestro desarrollo ya podemos realizar nuestro Primer Commit del proyecto en su repositorio y si tuvieramos un repositorio remoto, almacenaríamos ya nuestra primera copia externa.
git commit -am "Primer commit" |
Recordemos que no almacenaremos los ficheros de plugins, uploads, etc pero sí conservaremos en nuestro composer.json. De hecho, sólo con este fichero, una copia de la Base de Datos y otra copia de /wp-content/uploads seríamos capaces de reconstruir o desplegar en otro servidor nuestra instalación de WordPress con WP-CLI y Composer.
Por otro lado, podríamos utilizar Git para realizar despliegues y actualizaciones de componentes en nuestro servidor de producción.
Espero que os haya parecido interesante y estaré encantado de recibir algún apunte o comentario sobre él. Y por supuesto conocer qué otros métodos utilizáis para mejorar vuestra productividad.
Fuentes
Managing Your WordPress Site with Git and Composer
Autor:
Última actualización:
De acuerdo con lo dispuesto en el Reglamento (UE) 2016/679 de 27 de abril de 2016, consiento que mis datos sean tratados bajo la responsabilidad de Oscar Gascón Arjol para recibir respuesta a consultas. publicación de comentarios del blog y que las conserve mientras haya un interés mutuo para ello. Me doy por informado que tengo derecho a revocar este consentimiento en cualquier momento y a ejercer los de acceso, rectificación, portabilidad y supresión de mis datos y los de limitación y oposición al tratamiento dirigiéndome por email a me@oscargascon.es. También estoy informado de que puedo reclamar ante la autoridad de control a www.agpd.es.