Plugin WordPress – Tutorial Español – Parte 1
WordPress es sin duda mi CMS preferido, se puede hacer cualquier proyecto con este gran gestor de contenidos. Ademas como ya sabréis existen los plugins, que amplían las funcionalidades del propio gestor y hacen que sean mas poderosos.
En esta ocasión vamos a ver como se desarrollan estos plugins, como programarlos y una vez que esté 100% terminado como subirlo al repositorio oficial de WordPress donde después los usuarios podran descargarlo y usarlo en sus propias instalaciones.
En Twitter publiqué una encuesta de si mis seguidores y los que no lo son le interesaba un tutorial sobre esto, el resultado ha sido positivo a 13 horas de terminar, pero he optado por empezar ya, porque la encuesta lleva 7 días.
Hice una pregunta dentro de esta encuesta, ¿Que tipo de plugin? pero no he recibido ninguna respuesta, por lo que vamos a empezar y ya veremos sobre que hacemos el plugin.
Recuerda que puedes ir al tweet pulsando la imagen y comentar que tipo de plugin te gustaría.
Estructura
La estructura de archivos de plugins es muy simple, dependiendo de que tipo de plugin vayamos a desarrollar necesitaremos mas o menos archivos.
######
css/
style.css
js/
funciones.js
myplugin.php
###########
El nombre myplugin.php puede ser en realidad cualquiera, aunque es recomendable que sea el nombre del plugin.
Para el archivo de estilos (style.css) puede ser también cualquier nombre e igual para funciones.js
Estos son los archivos que tendremos para agregar estilos CSS en style.css para dar forma a la página por ejemplo de opciones, pero esto lo veremos más adelante.
myplugin.php
/* Plugin Name: Nombre del Plugin Description: Descripción del plugin (Permite HTML) Author: <a href="https://www.danielriera.net" target="_blank">Daniel Riera</a> <-- Autor Version: 3.1.0 <-- Versión del plugin */ if ( ! defined( 'ABSPATH' ) ) exit; $dir = dirname( __FILE__ );
Así empezará nuestro plugin con esos comentarios, estos comentarios los usa WordPress para mostrar los datos del plugin en el panel de administración.
Se permite etiquetas HTML por ejemplo enlaces, color de texto, etc (Pero sin abusar)
Con esto simplemente ya podríamos comprimir en zip la carpeta raíz y subirlo al administrador de plugins, claro está, no se verá nada ni el plugin tendrá ninguna función.
El if ( ! defined( ‘ABSPATH’ ) ) exit; evita el acceso directo al archivo myplugin.php
En la siguiente línea definimos el directorio actual, para luego usarlo en el siguiente ejemplo.
Dentro de este archivo será donde estarán las funciones de activación, desactivación, registro de acciones, etc.
Por ejemplo, cuando el plugin se activa se puede lanzar una función PHP con el siguiente hook.
register_activation_hook( "$dir/myplugin.php", 'mySpecialPlugin_activation' );
Como vemos usamos $dir, que es la variable que hemos definido antes para hacer referencia al directorio del plugin.
En el segundo parámetro especificamos la función que se va a ejecutar cuando el plugin sea activado.
Importante: Usar un prefijo para todas las funciones, por ejemplo mySpecialPlugin (Normalmente se usa el nombre del plugin o algún string), así no hay problemas de conflicto con otros plugins.
function mySpecialPlugin_activation() { //Se ha activado el plugin, ahora tienes que hacer esto. }
Esta función es la que se ejecutará cuando el plugin sea activado, para por ejemplo mostrar un mensaje o comprobar algunos valores.
Igual para Desactivación…
Es exactamente igual para cuando se desactiva el plugin, por ejemplo queremos borrar algunos valores internos. Es igual cambiando activation por deactivation
Quedaría así
register_deactivation_hook( "$dir/myplugin.php", 'mySpecialPlugin_deactivation' );
Y su correspondiente función
function mySpecialPlugin_deactivation() { //Ahora que el plugin está desactivado, tienes que hacer esto. }
Esto es lo principal de un plugin, ahora ya estamos preparados para seguir, pero esta parte la dejamos por aquí.
Podéis dejarme ideas en Twitter de que podría hacer nuestro plugin, el resultado final de este tutorial será subido al repositorio de WordPress.
Saludos
Happy Code!