Desarrollo de plugins para WordPress: Desde los principios hasta la maestría: Crea tu primer plugin personalizado

2 minutos de lectura
2026-04-19
2026-06-03
2,856
Gano comisiones cuando compras a través de los enlaces de abajo, sin coste adicional para ti.

¿Por qué los plugins son el núcleo de la ecología de WordPress?

La potente capacidad de expansión de WordPress se debe en gran medida a su sistema de plugins. Estos permiten a los desarrolladores agregar cualquier funcionalidad al sitio web sin necesidad de modificar el código central de WordPress, desde formularios de contacto sencillos hasta sistemas de comercio electrónico complejos. Comprender el desarrollo de plugins significa tener en la mano la clave para personalizar WordPress y satisfacer cualquier necesidad. Los plugins siguen el principio de que “los acuerdos son más importantes que la configuración” y interactúan con el código central a través de un conjunto claro de ganchos de ciclo de vida (Hooks).

Un complemento (plugin) estándar es, en esencia, uno o más componentes que se encuentran en un lugar específico (por ejemplo, dentro de un software o una plataforma)./wp-content/plugins/Los archivos PHP que se encuentran en el directorio deben contener comentarios de cabecera específicos para describir el plugin a WordPress. Este diseño modular asegura la separación de las funciones y la estabilidad del sistema, lo que hace que el activación, desactivación y desinstalación de los plugins sean procesos seguros y controlables.

Construyendo tu primer plugin: la estructura básica

Para crear un plugin, primero es necesario establecer sus archivos básicos y su estructura. Esto no se trata solo de escribir código, sino también de sentar las bases para el mantenimiento y la expansión futura del plugin.

Lecturas recomendadas Aprenda a desarrollar plugins para WordPress desde cero: cree funciones personalizadas y genere ingresos de manera eficiente.

Primero, en tu entorno de desarrollo local de WordPress…/wp-content/plugins/Dentro del directorio, cree una nueva carpeta. El nombre de la carpeta debe ser un texto en inglés, en minúsculas, único y que describa la función del plugin. Por ejemplo:my-first-greeting-pluginDentro de esta carpeta, cree un archivo PHP principal; el nombre del archivo suele ser el mismo que el de la carpeta, por ejemplo…my-first-greeting-plugin.php

Servidor de WordPress de UltaHost
Garantía de reembolso en 30 días, ancho de banda ilimitado y bases de datos, protección gratuita contra ataques DDoS; descuento del 50% al comprar por 3 años (versiones de 4 TB y 5 TB).

Declaración del encabezado de información del plugin

El archivo principal del plugin debe comenzar con un bloque de comentarios específico, que es clave para que WordPress lo reconozca. Inserte el siguiente código en su archivo PHP principal:

<?php
/**
 * Plugin Name:       我的第一个问候插件
 * Plugin URI:        https://example.com/my-greeting-plugin
 * Description:       这是一个演示插件,用于在网站页脚添加一句自定义问候语。
 * Version:           1.0.0
 * Author:            你的名字
 * Author URI:        https://example.com
 * License:           GPL v2 or later
 * Text Domain:       my-first-greeting-plugin
 * Domain Path:       /languages
 */

Esta nota describe toda la información que se muestra sobre el plugin en la página de “Plugins” del backend de WordPress.Plugin NameEstos campos son obligatorios; el resto son optativos. Después de guardar el archivo, podrás ver este nuevo plugin en la lista de plugins del backend de WordPress y activarlo de la misma manera que a los demás plugins.

Usar ganchos de acción para agregar funcionalidades.

Después de activar el plugin, actualmente no realiza ninguna función. Para que el plugin funcione correctamente, necesitamos utilizar los “ganchos (Hooks)” de WordPress. Los ganchos se dividen en “Acciones (Actions)” y “Filtros (Filters)”. Las Acciones te permiten ejecutar código personalizado en momentos específicos, como al cargar una página o al publicar un artículo.

Añada un saludo en el pie de página.

Una solicitud común es agregar contenido en la zona del pie de página de un sitio web. WordPress ofrece la posibilidad de hacerlo de manera sencilla.wp_footerEste es un gancho de acción; podemos “montar” (es decir, asociar) funciones personalizadas a este gancho.

Lecturas recomendadas Guía definitiva para el desarrollo de plugins para WordPress: Crea tu primer plugin personalizado desde cero

Añada el siguiente código debajo de los comentarios en la parte superior del archivo PHP principal:

// 声明一个自定义函数,用于输出问候语
function my_greeting_display() {
    echo '<p style="text-align: center; color: #666; padding: 10px;">¡Hola, mundo! Bienvenido a mi primer plugin para WordPress.</p>';
}
// 使用 add_action 函数将我们的自定义函数挂载到 wp_footer 钩子上
add_action( 'wp_footer', 'my_greeting_display' );

add_actionLas funciones son el puente que conecta el código personalizado con el núcleo de WordPress. El primer parámetro es el nombre del gancho (hook).‘wp_footer’El segundo parámetro es el nombre de la función que hemos definido.‘my_greeting_display’Guarda el archivo y actualiza la página web; así podrás ver este texto de saludo en el pie de página.

Introducir filtros para aumentar la flexibilidad.

Los ganchos de acción (action hooks) nos permiten “realizar acciones”, mientras que los ganchos de filtro (filter hooks) nos permiten “modificar los datos”. Estos nos brindan la posibilidad de alterar los datos antes de que sean utilizados o mostrados en el navegador. Esto hace que las funciones de los plugins sean más flexibles y configurables.

hosting.com Alojamiento compartido
Alto rendimiento con CPU AMD EPYC, almacenamiento SSD NVMe y LiteSpeed, asistencia interna de expertos 24 horas al día, 7 días a la semana, medidas de seguridad avanzadas como SSL, fuerza bruta, protección contra malware y DDoS, ahorro de hasta 73%.

Ejemplo de modificación del título de un artículo:

Supongamos que queremos agregar automáticamente el texto “【Recomendado】” delante de los títulos de todos los artículos. Podemos utilizar…the_titleFiltros.

Añada las siguientes nuevas funciones y filtros al archivo principal de su plugin:

// 声明一个函数,用于修改文章标题
function my_prefix_post_title( $title, $post_id = null ) {
    // 确保只在主循环且是文章页面添加前缀
    if ( is_single() && in_the_loop() ) {
        $title = '【推荐】' . $title;
    }
    // 必须返回修改后的值
    return $title;
}
// 使用 add_filter 函数,挂载到 the_title 过滤器
add_filter( 'the_title', 'my_prefix_post_title', 10, 2 );

add_filterEl tercer parámetro10Se trata de un indicador de prioridad: cuanto menor es el número, antes se ejecuta la acción correspondiente. El cuarto parámetro es…2Indica que algo se transmite a una función.my_prefix_post_titleLa cantidad de parámetros. La función de filtro debe devolver el valor modificado, y no simplemente mostrarlo. Esto permite que tu código colabore en cadena con los filtros de otros plugins o temas.

Lecturas recomendadas Dominar completamente el desarrollo de plugins para WordPress: construir funciones personalizadas desde cero.

Crear la página de administración de plugins

Cuando un plugin requiere opciones que puedan ser configuradas por los usuarios, es necesario crear una página de administración en el backend para ello. Esto se logra utilizando la API del menú de administración de WordPress.

Añadir una página de configuración al panel de administración.

Añadiremos un menú principal sencillo a la barra de navegación izquierda del panel de administración de WordPress.

Alojamiento compartido InterServer
Alojamiento compartido $2.50 USD al mes , primer mes $0.1 USD código promocional tryinterserver, 461 scripts de aplicaciones en la nube, instalación en un clic.

Sigue añadiendo el siguiente código en el archivo principal de tu plugin:

// 注册管理菜单
function my_greeting_add_admin_menu() {
    add_menu_page(
        '问候插件设置',       // 页面标题
        '问候插件',           // 菜单标题
        'manage_options',     // 权限(管理员)
        'my-greeting-plugin', // 菜单slug
        'my_greeting_admin_page', // 回调函数,用于显示页面内容
        'dashicons-admin-generic', // 菜单图标(WordPress Dashicons)
        80                    // 菜单位置
    );
}
add_action( 'admin_menu', 'my_greeting_add_admin_menu' );

// 定义设置页面的HTML内容
function my_greeting_admin_page() {
    // 安全检查
    if ( !current_user_can( 'manage_options' ) ) {
        return;
    }
    ?&gt;
    <div class="wrap">
        <h1>¿¿¿¿php echo esc_html( get_admin_page_title() ); ?&gt;</h1>
        <form action="/es/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            // 输出设置字段(后续可扩展)
            settings_fields( 'my_greeting_options' );
            do_settings_sections( 'my-greeting-plugin' );
            submit_button( '保存设置' );
            ?>
        <input type="hidden" name="trp-form-language" value="es"/></form>
        <p>Bienvenido a la página de configuración de mi primer plugin. En el futuro, se podrán agregar más opciones aquí.</p>
    </div>
    ¿php?  
}

add_menu_pageLas funciones son esenciales para crear menús de nivel superior. Después de guardar los cambios, inicie sesión en la administración de WordPress como administrador y verá en la parte izquierda un nuevo elemento de menú llamado “Plugin de Saludo”. Al hacer clic en él, accederá a la página de configuración básica que hemos definido. Este es el primer paso para desarrollar funciones más avanzadas en los plugins; en el futuro, podrá integrar campos de configuración, mecanismos de almacenamiento de datos a través de formularios y otras funcionalidades en esta página.

resúmenes

Al crear un sencillo plugin de saludo, hemos recorrido el camino esencial para desarrollar plugins en WordPress: comenzando por crear los archivos básicos y la información del encabezado, y luego utilizando…add_actionEl gancho (hook) ejecuta el código en una posición específica y, a continuación, lo utiliza (es decir, realiza alguna acción basada en el resultado de ese código).add_filterModifica el contenido de la salida y, finalmente, utiliza la API del menú de administración para agregar una interfaz de configuración en segundo plano al plugin. Estos cuatro pilares fundamentales —la estructura de archivos, los ganchos de acción, los ganchos de filtro y la interfaz de administración— constituyen la base de casi todos los plugins de WordPress. Al comprender y utilizar estos conceptos de manera experta, ya has pasado de ser un principiante a un profesional, y podrás comenzar a crear herramientas personalizadas más complejas y potentes, liberando así todo el potencial de WordPress.

FAQ Preguntas más frecuentes

¿Cuál es la estructura mínima de un plugin para ###?
Un plugin puede contener solo un archivo PHP independiente. Basta que dicho archivo incluya las anotaciones de cabecera válidas para un plugin de WordPress.Plugin Name), y luego lo coloca en/wp-content/plugins/WordPress puede reconocer y listar un archivo o directorio, así como sus subdirectorios. Por supuesto, los plugins más complejos suelen organizar su código en múltiples archivos y subdirectorios para mejorar la mantenibilidad.

¿Cuál es la diferencia fundamental entre los ganchos de acción (action hooks) y los ganchos de filtro (filter hooks)?

Los ganchos de acción se utilizan para “ejecutar operaciones” en momentos específicos; no requieren que tu función devuelva un valor. Su función principal es ejecutar un fragmento de código. Por otro lado, los ganchos de filtro se usan para “modificar datos” y exigen que tu función devuelva un valor (generalmente el valor ingresado después de la modificación), para que pueda ser transmitido a través de la cadena de filtrado. En resumen, las acciones se encargan de realizar algo, mientras que los filtros se utilizan para cambiar el estado de los datos.

¿Cómo puedo asegurarme de que el código de mi plugin no entre en conflicto con otros plugins?

Para evitar conflictos entre nombres de funciones, clases o constantes, la mejor práctica es utilizar espacios de nombres (recomendado) o agregar un prefijo único a todos los identificadores. Por ejemplo, en los ejemplos de este artículo, todas las funciones utilizan este método.my_omy_greeting_Como prefijo: A partir de PHP 5.3, el uso de espacios de nombres se ha convertido en una práctica más moderna y completa.

¿Cómo depurar al desarrollar un complemento?

Primero, asegúrate de que en tu…wp-config.phpEl archivo se abrió en el programa.WP_DEBUGdefine( ‘WP_DEBUG’, true );. Utiliceerror_log()La función escrive información de depuración en el registro de errores del servidor. Para las comprobaciones de variables, se puede utilizar…print_r()ovar_dump()En combinación conwp_die()Se debe generar la salida de manera segura en la página. Además, el uso de plugins para desarrolladores como Query Monitor puede mejorar significativamente la eficiencia del depurado.