¿Cómo desarrollar un plugin de WordPress? En Educa Open te explicamos paso a paso cómo crear tu propio plugin personalizado.

Aprende a crear un plugin de WordPress paso a paso

antonio.gutierrez
18/10/2024

WordPress es uno de los gestores de contenido (CMS) más populares del mercado. Todo el mundo parece conocer esta herramienta, que incluye una enorme colección de plugins. ¿Pero qué es un plugin de WordPress? Básicamente, completan funcionalidades personalizadas a tu web para mejorar su calidad. Eso sí, con ellos no tienes que tocar el código, ya que vienen configurados de fábrica.

Sin embargo, puede ser que haya una funcionalidad importante para ti que ningún plugin sea capaz de realizar. ¿Puedes crear un plugin de WordPress tu mismo? Por supuesto, aunque debes tener en cuenta una serie de prácticas y normas para no perder la cabeza en el intento.

¿Estás preparado? ¡Comenzamos!

Checklist con lo que necesitarás para crear un plugin en WordPress

Lo primero que vas a necesitar es un editor de texto para escribir el código del plugin, como, por ejemplo, Notepad ++ o Atom. Aquí escribirás todo el código, pero, antes, tendrás que aprender a conectar Notepad ++ con tu servidor FTP. Inmediatamente después deberás configurar tu cliente FTP para subir el archivo del plugin a tu web.

Paralelamente tendrás que comprobar que tu versión instalada de WordPress está actualizada, además de completar una copia de seguridad que garantice que ante cualquier error o contratiempo, podrás salvar tus datos y restaurar todo de nuevo.

Una alternativa para probar tu plugin sin ningún tipo de peligro es instalando WordPress de manera local. Así, podrás no tener un sitio web con un dominio y un hosting para realizar pruebas, de manera que, lo que vayas implementando, no afecte de manera directa a los usuarios.

Por último, y más importante, debes tener unos conocimientos básicos de PHP para, por ejemplo, escribir una función personalizada o llamar a funciones del núcleo de WordPress. Si no conoces nada sobre PHP, es el momento de pasar a la acción con nuestro Curso Superior de Programación de Páginas Web con PHP y Javascript.

Diferencia entre un plugin y un tema de WordPress

Tanto los temas como los plugins pueden cambiar alguna funcionalidad de tu sitio web, sin embargo, cuentan con una gran diferencia.

Por un lado, los temas de WordPress tienen un archivo functions.php, dentro de la carpeta /wp-includes/, cuya función es poder añadir nuevas funcionalidades, cambiando el código. ¿Cuál es el problema? Que si desactivas dicho tema o realizas una actualización, se sobrescribirá el archivo functions.php, lo que implica volver a personalizar el código.

Por eso, no es recomendable implementar pequeños cambios desde el tema, sino desde un plugin de WordPress. ¿Por qué? Porque puedes añadir plugins desde cualquier instalación de WordPress. No van a sufrir ningún tipo de modificación o van a dejar de funcionar, aunque cambies de tema. No habrá nada que sobrescriba las funciones del plugin, lo que lo convierte en una increíble opción para alteraciones leves.

Aprendiendo qué son los hooks de WordPress

Antes de avanzar y explicar cómo desarrollar un plugin en WordPress, creemos que es importante que conozcas qué son los hooks. Y bien, estos hooks de WordPress se pueden definir como puntos específicos dentro del sistema que permiten modificar o agregar funcionalidades sin la necesidad de tocar el código base.

Imagínate que WordPress es una gran máquina en la que los hooks son pequeños botones que, al presionarlos, alteran el comportamiento de dicha máquina. Lo realmente positivo de los hooks de WordPress es que puedes personalizar tu sitio web sin correr el riesgo de romperlo y tener problemas serios de cara al futuro.

En resumen, un hook engancha tu propio código a una parte específica del ciclo de vida de WordPress. Por ejemplo, tú puedes usar un hook para mostrar contenido extra después de cada post o para modificar cómo se muestra el título de una entrada. Sin duda, la gran ventaja de WordPress es que ya te proporciona montones de hooks para hacer cualquier cosa que tengas en mente.

Ahora bien, existen dos tipos principales de hooks: los action hooks (acciones) y los filtes hooks (filtros). ¡Vamos a verlos!

Hooks de acción

Los hooks de acción, o action hooks, son puntos en el flujo de ejecución de WordPress que permiten que tu código se ejecute en un monto particular, sin alternar el flujo general del sitio web. Un ejemplo claro de acción es wp_footer, que se ejecuta justo antes de que WordPress termine de cargar la página, permitiéndote agregar contenido en el pie de página, o footer, sin tener que incorporar cambios en la plantilla.

Otro ejemplo de hook de acción es init, que se ejecuta cuando WordPress terminó de cargar completamente la página y está listo. Por norma general, se usa este hook para inicializar tus propios scripts o plugins.

¿Cómo se estructura un hook de acción? Es muy sencillo, ya que tan solo debes de definir la función con el código que prefieras y luego enganchas esa función a un hook específico usando add_action(). Aquí te mostramos un ejemplo:

function mi_funcion_personalizada() {

echo '¡Hola desde el footer!';

}

add_action('wp_footer', 'mi_funcion_personalizada');

Este código, básicamente, permite que en el pie de página de tus páginas aparezca la frase “¡Hola desde el footer!”.

Hooks de filtro

Los hooks de filtro se centran en modificar datos antes de que estos sean mostrados o guardadas. Por ello, podemos concluir que ejecutan un código en un momento específico, estando diseñados para interceptar y cambiar información en su trayecto.

Vamos a poner un ejemplo: imagina que quieres cambiar el título de tus entradas antes de que se muestren en la página. Pues bien, con un hook de filtro como the_title conseguirías capturar este valor, modificarlo y devolverlo actualizado. De esta manera puedes personalizar cualquier cosa en WordPress, así que apunto estos hooks de filtro.

Mira este ejemplo:

function cambiar_titulo($titulo) {

return '¡Título modificado: ' . $titulo . '!';

 }

add_filter('the_title', 'cambiar_titulo');

Aquí, le estamos diciendo que cada vez que muestre un título de post, aplique este filtro y muestro “¡Título modificado: [título original]!”.

Crear un plugin en WordPress: paso a paso

Ahora sí, vamos a entrar de lleno a explicarte de manera detallada cómo puedes crear un plugin en WordPress.

Crea una carpeta para tu plugin

Aunque parezca obvio, necesitas un lugar en el que almacenar tu plugin de WordPress. Por ello, es necesario que vayas a la carpeta donde tienes instalada tu copia de Wordpress. Allí, busca la carpeta wp-content y, dentro de ella, vete hasta otra llamada plugins.

Guarda esta ruta en tu cabeza porque es donde tendrás que crear una nueva carpeta para cada uno de tus plugins personalizadas. Nunca olvides de nombrar cada nueva carpeta de manera concreta. Por ejemplo, si vas a crear un plugin para una funcionalidad de contacto, lo podrías llamar plugin-formulario-contacto.

Nombrar de manera muy concreta no es un paso que te puedas saltar, ya que en esta carpeta vas a tener todos tus plugins, lo que puede ser algo lioso. Por ello, ten ordenada esta carpeta para identificar y poder gestionar con rapidez los distintos archivos.

Crea tu primer archivo

Imagina que ya tienes la carpeta para tu plugin personalizado creada. Ahora, sería el momento de crear tu primer archivo, para lo que debes tener en cuenta que cada plugin necesita de un archivo principal. En este irás agregando el código necesario.

Así, crea un archivo en tu carpeta y nómbralo de manera descriptiva, como, por ejemplo, formulario-contacto.php. Dentro de este archivo, no te olvides de colocar siempre una cabecera especial para que WordPress reconozca tu plugin. Aquí te damos un ejemplo:

<?php

/*

Plugin Name: Formulario de Contacto

Description: Un plugin simple para añadir un formulario de contacto 

Version: 1.0

Author: Tu Nombre 

*/

Esto te sirve para ir hasta el panel de administración de WordPress y encontrarte el tuyo en la lista, aunque todavía no contenga ninguna funcionalidad.

¡Manos a la obra! Escribe las funciones de tu plugin

Llegamos al momento en el que tienes que añadir funciones de WordPress a tu plugin. ¿Pero qué son las funciones? Básicamente, son bloques de código que realizar tareas específicas, siendo la parte esencial de un plugin.

Siguiendo con el ejemplo del formulario de contacto, podría ser algo así:

function mostrar_formulario_contacto() {

 echo '<form action="" method="post">

<label for="nombre">Nombre:</label>

<input type="text" name="nombre" id="nombre" required>

<input type="submit" value="Enviar"> </form>';

}

Aquí hemos creado una función que genera un formulario de contacto cuando es llamada. ¿Pero cuándo es llamada? A través de un hook. En este caso, podríamos usar el hook the_content para que tu formulario apareciese así:

add_filter('the_content', 'mostrar_formulario_contacto');

Último paso: crear la página de administración

Un plugin puede tener su propia página dentro del panel de administración de WordPress. Esto ocurre, sobre todo, en estos plugins que necesitan opciones de configuración. Por ello, te vamos a mostrar cómo puedes crear la página de administración para tu plugin.

Lo primero: usar la función add_menu_page() de Wordpress, que te permite agregar un nuevo ítem en el menú del panel de control. Este sería el ejemplo:

function agregar_menu_administracion() {

 add_menu_page( 'Formulario de Contacto', // Título de la página

'Contacto', // Texto del menú '

manage_options', // Capacidad de usuario

'formulario-contacto', // Slug único

'mostrar_pagina_admin', // Función que mostrará el contenido

'', // Icono (opcional)

6 // Posición en el menú

);

}

add_action('admin_menu', 'agregar_menu_administracion');

Ya sabemos que contamos con un elemento llamado “Contacto” en el menú de administración. Sin embargo, ahora puedes personalizarlo a través de la función mostrar_pagina_admin(), en la que puedes poner todo lo que necesites. Por ejemplo:

function mostrar_pagina_admin() {

echo '<h1>Configuración del Formulario de Contacto</h1>';

echo '<form method="post" action="options.php">';

// Aquí irán los campos de tu formulario

echo '</form>';

}

Prácticas a tener en cuenta al crear plugins personalizados

Para terminar este post, te queremos acercar algunas de las mejores prácticas de codificación y desarrollo de plugins. Al fina, se trata de una serie de consejos que te pueden ahorrar mucho tiempo a la hora de crear un plugin en WordPress:

  • Prueba tus plugins en un entorno de staging para que rompas tu sitio web.
  • Cuida la estructura de carpetas, usando la lógica: crea subcarpetas para cada funcionalidad y divide el código en archivos separados.
  • Nombra cada archivo, carpeta y elemento con mucho cuidado.
  • Añadir comentarios te permite adelantarte a los problemas del futuro.
  • Crea documentación que ayude a entender tu plugin.
  • Consulta el Codex de WordPress para interiorizar las normas de codificación específicas del idioma.
  • Usa una herramienta de depuración cuando desarrolles plugins, lo que hará que encuentres cualquier error de manera rápida.

Artículos relacionados

En Educa Open, te explicamos paso a paso cómo poner un favicon en HTML, además de acercarte otros aspectos a tener en cuenta, como el tamaño.
antonio.gutierrez

Favicon en HTML: descubre cómo ponerlo

22/10/2024

Cuando empiezas a navegar por internet, seguro que llegas a ese momento en el que tienes un montón de pestañas abiertas.

¿Conoces LocalTime o LocalDateTime? Prepárate para profundizar en las variables del tipo date en Java con ejemplos prácticos y útiles.
antonio.gutierrez

Las fechas en Java: todo lo que debes saber sobre las variables tipo date

14/10/2024

Java es un lenguaje de programación que ha ido avanzando y mejorando con el tiempo.

"¡Mi PC no enciende!". ¿Te sientes identificado? Desde EducaOpen, te contamos las posibles causas y soluciones.
cristina.polo

Mi PC no enciende: causas y soluciones

10/10/2024

¡Mi PC no enciende! Seguramente, en algún momento de tu vida, te has sentido identificado/a con esta afirmación y, además, desconocías la causa por la que tu orde