Cómo crear un plugin básico

En un sentido reduccionista, los plugins son simples archivos PHP que se encuentran en la carpeta wp-content/plugins de nuestra instalación de WordPress. El paquete de instalación de WordPress incluye dos plugins: Akismet y Hello Dolly. Hello Dolly es un plugin que consiste en un simple archivo llamado hello.php, y lo podemos encontrar suelto en la carpeta de plugins. Akismet es más complejo: consiste en varios archivos, y por una cuestión de orden lo vamos a encontrar en su propia carpeta. Sin embargo, dentro de esa carpeta vamos a encontrar un archivo principal llamado akismet.php. La similitud entre estos dos archivos, hello.php y akismet.php, es que ambos cuentan con una sección de código comentado al inicio de cada uno, conteniendo una serie de definiciones con los datos de cada plugin. Esa porción de código, que funciona a manera de encabezado del plugin, es lo que permite que WordPress reconozca el archivo como el principal de un plugin, y que a partir de ahí lo pueda mostrar en la lista de la sección Plugins de nuestra instalación.

Esta forma de organización nos indica que un plugin puede estar suelto dentro de wp-content/plugins o dentro una carpeta propia del plugin. Lo importante es que el archivo cuente con ese encabezado en el que se declaren ciertos datos del plugin. Solamente es obligatorio que nuestro plugin tenga un nombre, pero también podemos agregar descripción, link, autor, versión, etc.

<?php
/*
Plugin Name: Mi plugin
Plugin URI:  http://example.org/mi-plugin
Description: Esta es la descripción de mi plugin.
Version:     1.0
Author:      Andrés Villarreal
Author URI:  http://andrezrv.com
License:     GPL2
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Domain Path: /languages
Text Domain: mi-plugin
*/

Una vez que tenemos nuestro archivo principal con su encabezado, podemos ver que WordPress lo reconoce como tal en nuestra lista de plugins instalados. Sin embargo, todavía no está activo. Para activarlo tenemos que hacer click en el link correspondiente. Eso hace que todo el código PHP que escribamos en nuestro archivo empiece a ejecutarse, como pasa con cualquier archivo PHP que podamos ejecutar en un proyecto propio.

Como todavía no tenemos nada de código PHP propiamente dicho, más allá del encabezado, no tenemos nada ejecutándose. Podemos solucionar eso rápidamente escribiendo algo de código PHP después del encabezado, como por ejemplo un die( 'Hello world!' );. Esto va a hacer que, una vez que actualicemos nuestro browser en cualquier página de nuestra instalación de WordPress, se imprima "Hello world!" y la ejecución del script termine, tal como dicta el comportamiento de la función die(). Claramente, esto no es para nada útil, pero sirve para darnos una idea de la libertad de manejo de código que tenemos a partir de ese archivo.

<?php
/*
Plugin Name: Mi plugin
Plugin URI:  http://example.org/mi-plugin
Description: Esta es la descripción de mi plugin.
Version:     1.0
Author:      Andrés Villarreal
Author URI:  http://andrezrv.com
License:     GPL2
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Domain Path: /languages
Text Domain: mi-plugin
*/

die( 'Hello world!' );

Para ver más posibilidades acerca de lo que nos permite WordPress, una buena idea a la hora de empezar es estudiar Hello Dolly. Dentro de hello.php podemos ver que se declara una función, hello_dolly(), que toma una línea de la canción "Hello Dolly" al azar, y la imprime al ejecutarse la acción admin_notices, por medio del uso de la función add_action(). De hecho, si activamos Hello Dolly desde nuestra lista de plugins, podemos ver que la línea que se muestra cambia cada vez que actualizamos cualquier página en la sección de administración, reflejando lo que se define en el código del plugin.

Extracto de hello.php:

<?php
// This just echoes the chosen line, we'll position it later
function hello_dolly() {
    $chosen = hello_dolly_get_lyric();
    echo "<p id='dolly'>$chosen</p>";
}

// Now we set that function up to execute when the admin_notices action is called
add_action( 'admin_notices', 'hello_dolly' );

No importa ahora mismo cómo funciona esta interacción entre funciones y acciones, porque la vamos a ver con más detalle en los próximos capítulos. Lo que es importante saber en este punto es que, una vez que creamos nuestro archivo principal de plugin y lo activamos desde el panel de administración, dentro de ese archivo podemos hacer cualquier cosa que PHP nos permita hacer.

results matching ""

    No results matching ""