Cómo hacer un plugin en WordPress

Reading time aprox: 2 minutes, 42 seconds

Cómo hacer un plugin en WordPress

Como ya comenté en Mantenimiento Repetitivo, te contaré aquí cómo hacer un plugin en WordPress.

Salvando las distancias, un plugin en WordPress es como una aplicación para un sistema operativo. Ambos son trozos de código, en este caso en lenguaje php, que realizan una labor dentro del entorno del sistema que los contiene.

En ambos casos, para que sea posible «instalar» ese código dentro del sistema, se han de cumplir unas reglas y requisitos.

Los requisitos para un plugin en WordPress son de fácil cumplimiento, pero conviene conocerlos para que las cosas estén correctamente hechas y podamos aprovechar todas las ventajas que el sistema del entorno nos ofrece.

En este artículo te contaré lo mínimo que necesitas para crear un plugin «que funciona»; en otro artículo te contaré las cosas que deberías hacer si quieres hacer un «plugin profesional».

Cómo hacer un plugin en WordPress

Según la estructura de WordPress, un plugin debe estar situado en un lugar determinado, el directorio llamado plugins, así que empezaremos por crear un sub directorio, donde estará situado nuestro código.

La estructura del directorio
La estructura del directorio

Hemos llamado plugin1 a nuestro plugin de ejemplo, pero el nombre puede ser cualquiera, lo importante es que esté situado bajo la carpeta adecuada.

la estructura que ha de tener este subdirectorio, dependerá de su propósito y de lo complicado que sea, así como de las costumbres de cada programador, pero lo único que necesitamos en este directorio, en nuestro caso, será un archivo que llamaremos plugin1.php

El archivo que contiene el código de nuestro plugin, sin embargo, si que necesita tener una estructura determinada.

La primera parte del archivo, ha de tener una cabecera informativa, que es la que WordPress usa para identificar el plugin, así que las primeras líneas de código del archivo serán:

<?php
/*
Plugin Name: El nombre que demos al plugin
Plugin URI: Tu pagina web o la del creador
Description: Descripción breve del propósito del plugin
Version: 0.1 (El numero de versión que corresponda)
Author: Tu nombre
Author URI: Tu página web (un poco de publicidad)
License: Lo que corresponda, sugiero: GPLv2 o posterior
.
Cualquier otra nota o explicación acerca del plugin
.
*/

?>

Ten en cuenta que el cierre de php no es necesario (la última línea)

Con este contenido, ya es válido para que el plugin sea reconocido por WordPress y lo verás en la lista de plugins si vas al menú Plugins -> Plugins instalados.

Claramente, este plugin no hace nada, aunque si queremos, podemos activarlo.

Para que el plugin haga algo, debe tener contenido, vamos a agregar el contenido que usamos como ejemplo en el artículo «Mantenimiento repetitivo».

Esto lo hacemos situando el código después del comentario y antes de la línea de cierre de php que, insisto NO es necesaria.

//Optimize Database
function optimize_database(){
    global $wpdb;
    $all_tables = $wpdb->get_results('SHOW TABLES',ARRAY_A);
    foreach ($all_tables as $tables){
        $table = array_values($tables);
        $wpdb->query("OPTIMIZE TABLE ".$table[0]);
    }
}

function simple_optimization_cron_on(){
    wp_schedule_event(time(), 'daily', 'optimize_database');
}

function simple_optimization_cron_off(){
    wp_clear_scheduled_hook('optimize_database');
}

register_activation_hook(__FILE__,'simple_optimization_cron_on');
register_deactivation_hook(__FILE__,'simple_optimization_cron_off');

Así el contenido completo del archivo plugin1.php será:

<?php
/*
Plugin Name: El nombre que demos al plugin
Plugin URI: Tu pagina web o la del creador
Description: Descripción breve del propósito del plugin
Version: 0.1 (El numero de versión que corresponda)
Author: Tu nombre
Author URI: Tu página web (un poco de publicidad)
License: Lo que corresponda, sugiero: GPLv2 o posterior
.
Cualquier otra nota o explicación acerca del plugin
.
*/

//Optimize Database
function optimize_database(){
    global $wpdb;
    $all_tables = $wpdb->get_results('SHOW TABLES',ARRAY_A);
    foreach ($all_tables as $tables){
        $table = array_values($tables);
        $wpdb->query("OPTIMIZE TABLE ".$table[0]);
    }
}

function simple_optimization_cron_on(){
    wp_schedule_event(time(), 'daily', 'optimize_database');
}

function simple_optimization_cron_off(){
    wp_clear_scheduled_hook('optimize_database');
}

register_activation_hook(__FILE__,'simple_optimization_cron_on');
register_deactivation_hook(__FILE__,'simple_optimization_cron_off');
?>

Ahora podemos activar nuestro plugin, que realizará su cometido al igual que cualquier otro.

¿Y qué pasa si hay un error?

Si al crear tu plugin has cometido un error de sintaxis o de programación, no te preocupes, no romperás WordPress, el sistema es lo suficientemente inteligente como para detectar la mayoría de errores e ignorar el plugin, indicándolo con un mensaje de error.

Pero no te confíes, los problemas aparecen (como con cualquier aplicación informática) cuando la aplicación no contiene errores de sintaxis ni de estructura, pero no hace lo que pensamos que debería hacer.

La mayoría de las veces, los errores informáticos no significan que el programa no hace lo que le hemos dicho, el programa hace «exactamente» lo que le hemos dicho, que a veces, no es lo que esperamos que haga.


¡Gracias por leernos!


¡Tus comentarios y preguntas nos ayudan a mejorar, por favor comenta!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

7 − uno =

Para ofrecer las mejores experiencias, utilizamos tecnologías como las cookies para almacenar y/o acceder a la información del dispositivo. El consentimiento de estas tecnologías nos permitirá procesar datos como el comportamiento de navegación o las identificaciones únicas en este sitio. No consentir o retirar el consentimiento, puede afectar negativamente a ciertas características y funciones.    Más información
Privacidad