¿Cómo crear un plugin de citas para WordPress?

Hace unos cuantos años empecé en esto del desarrollo de plugins para WordPress cuando me encontré con un ejercicio excepcional que me enseñó mucho acerca de los conceptos básicos sobre la creación de plugins. Empecé con una idea simple: crear un plugin poco práctico que generase una cita al azar en la descripción del tema actual. En este tutorial, voy a revisitar el plugin que tanto me enseño a crear plugins para WordPres por mi mismo.

El conocimiento mínimo necesario para este tutorial es sólo algunos conocimientos básicos de PHP (esto está dirigido a principiantes que quieren saltar al desarrollo de plugins). La misión de esta lección: crear un plugin que genere una cita de forma aleatoria cada vez que la página se cargue. Cuando el plugin se active en la sección de plugins, funcionará en silencio, sin necesidad de configuración alguna. No crea ningún recurso, por lo que no es necesario el procedimiento de desinstalación.

Paso 1. Pasos básicos del plugin

Las siguientes líneas de código son esenciales para indicar a WordPress que lo que estamos desarrollando es un plugin. WordPress, básicamente, sólo necesitará el nombre del plugin. El orden de las líneas no es importante, pero te darás cuenta, si alguna vez has indagado en algún plugin, que la estructura de las cabeceras suele ser siempre la misma.

El archivo debe estar codificado en UTF-8.

/*
Plugin Name: Adam's random quote
Version: 0.1
Plugin URI: http://burucs.com
Description: Replaces the site's description with a random quote
Author: Adam Burucs
Author URI: http://burucs.com
*/

Paso 2. La función generadora

Nuestra primera pieza funcional de código es la función generadora. Se compone de un array dimensional, lleno de muchas citas, y al final de la rutina, seleccionamos una cita al azar. Usamos la función rand de PHP para ello. Observa que los valores inicial y final están incluidos en el rango generado.

De acuerdo con las normas de codificación de WordPress, debemos usar la siguiente convención de nombres predeterminados: las dos iniciales del autor y la abreviatura del nombre del plugin.

function ab_arq_generate() {
    $quotes = array(
        'Silence is golden.',
        'Nothing is what it looks like.',
        'Make everything right!',
        'Better late than never.',
        'Seeing is believing.'
    );
     
    return $quotes[rand(0, count($quotes)-1)];
}

Paso 3. Función que reemplaza la descripción por defecto por la cita

En esta sección vamos a utilizar una función helper que utiliza el procedimiento escrito anteriormente:

function ab_arq_change_bloginfo( $text, $show ) {
    if( 'description' == $show ) {
        $text = ab_arq_generate();
    }
    return $text;
}

Paso 4. Usando el sistema de filtros

El sistema de filtros es un concepto muy importante en el mundo de WordPress. Los filtros son las funciones que tu plugin puede asignarse en lo que respecta a la modificación de datos. En nuestro caso, sobreescribimos la descripción por defecto del tema actual. Por ello, tenemos que utilizar la función bloginfo.

add_filter( 'bloginfo', 'ab_arq_change_bloginfo', 10, 2 );

Paso 5. Código final

Y aquí está el código entero del plugin que acabamos de crear:

/*
Plugin Name: Adam's random quote
Version: 0.1
Plugin URI: http://burucs.com
Description: Replaces the site's description with a random quote
Author: Adam Burucs
Author URI: http://burucs.com
*/
 
function ab_arq_generate() {
    $quotes = array(
        'Silence is golden.',
        'Nothing is what it looks like.',
        'Make everything right!',
        'Better late than never.',
        'Seeing is believing.'
    );
     
    return $quotes[rand(0, count($quotes)-1)];
}
 
function ab_arq_change_bloginfo( $text, $show ) {
    if( 'description' == $show ) {
        $text = ab_arq_generate();
    }
    return $text;
}
 
add_filter( 'bloginfo', 'ab_arq_change_bloginfo', 10, 2 );

Hasta ahora os he mostrado los elementos básicos para la creación de este plugin, pero puedes extenderlo a distintos ámbitos. Por ejemplo: ¿Qué pasa si tenemos que hacer frente a más citas? Podemos elegir entre varias opciones. En primer lugar: podemos hacer un archivo php adicional para ser incluido en el complemento. Segundo: el uso de una tabla de base de datos dedicada. En tercer lugar: la recuperación de datos desde un servidor remoto (algunas más posibilidades a desarrollar).

Fuente: Adam Burucs

 

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP