Guía completa para el desarrollo de complementos de WordPress: desde cero hasta crear tu primer complemento

Lectura en 3 minutos
2026-03-15
2026-06-03
2,115
Gano comisiones cuando compras a través de los enlaces de abajo, sin coste adicional para ti.

Preparación del entorno de desarrollo para plugins de WordPress

Antes de comenzar a escribir código, es de vital importancia establecer un entorno de desarrollo local estable y eficiente. Esto no solo te permitirá realizar pruebas de manera segura, sino que también imitará la configuración de un servidor real. Para el desarrollo de plugins para WordPress, recomendamos encarecidamente el uso de software de servidores locales, como XAMPP, MAMP o Local by Flywheel. Estos herramientas te permiten configurar fácilmente un entorno en tu ordenador que incluye Apache, PHP y MySQL.

A continuación, necesitarás un editor de código. Visual Studio Code, PhpStorm o Sublime Text son opciones excelentes, ya que ofrecen resaltado de sintaxis, sugerencias de código y funciones de depuración, lo que puede mejorar significativamente la eficiencia del desarrollo. Después de instalar y configurar estos herramientas, descarga la versión más reciente del código fuente de WordPress y cópialo a tu servidor local.

Además, se recomienda inicializar un sistema de control de versiones, como Git, en la carpeta raíz de tu proyecto de plugin.git initLa orden crea un nuevo repositorio, lo que te ayuda a seguir los cambios en el código, revertir errores y colaborar con el equipo en el futuro. Además, considera activar el modo de depuración de WordPress.wp-config.phpEl documento incluiráWP_DEBUGLos constantes se establecen entrueEsto permitirá que los errores y advertencias de PHP se muestren durante el proceso de desarrollo, lo que te ayudará a localizar los problemas rápidamente.

Lecturas recomendadas Guía completa para el desarrollo de plugins para WordPress: Cómo crear su propio plugin desde cero

Cree la estructura básica de tu primer plugin.

Un plugin estándar de WordPress cuenta con una estructura de directorios y archivos específica. Para comenzar, acceda al directorio de instalación de WordPress.wp-content/pluginsCarpeta. Aquí, crea una nueva carpeta para el plugin que vas a desarrollar. El nombre debe ser breve, único y describir la función del plugin, por ejemplo:my-first-plugin

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).

Redacción del archivo principal del plugin

Dentro de esa carpeta, cree un archivo cuyo nombre sea….phpLos archivos con un extensión que sirven como archivo principal de un plugin suelen tener el mismo nombre que la carpeta que los contiene. Por ejemplo…my-first-plugin.phpEste archivo es el punto de entrada para el plugin, y las notas de cabecera del plugin que se encuentran en su parte superior son obligatorias. Estas notas proporcionan a WordPress información metadatos sobre el plugin.

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://example.com/my-first-plugin
 * Description:       这是一个用于学习和演示的WordPress插件。
 * Version:           1.0.0
 * Author:            你的名字
 * Author URI:        https://example.com
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 * Domain Path:       /languages
 */

En esta nota:Plugin NameEs el único campo obligatorio; el resto de la información ayuda a los usuarios a identificar tu plugin en el backend. Una vez completes este paso, en realidad habrás creado un plugin que puede ser activado. Inicia sesión en el backend de WordPress, ve al menú “Plugins” y deberías ver “Mi primer plugin”, aunque por el momento no tiene ninguna función.

Desarrollo de funciones de plugins y encapsulación de clases

Con el fin de garantizar la claridad y la facilidad de mantenimiento del código, se recomienda organizar el código de manera orientada a objetos. En el archivo principal, o en un archivo separado, se define una clase que agrupa todas las funciones del complemento.

if ( ! class_exists( 'My_First_Plugin' ) ) {
    class My_First_Plugin {
        public function __construct() {
            // 构造函数,用于初始化动作和过滤器
            add_action( 'init', array( $this, 'init' ) );
        }

public function init() {
            // 插件初始化时执行的操作
            // 例如:注册短代码、自定义文章类型等
        }
    }

// 实例化插件类
    new My_First_Plugin();
}

Esta estructura organiza tus funciones en un espacio de nombres independiente, lo que evita conflictos con los nombres de las funciones de otros complementos o temas.

Lecturas recomendadas Desarrollo de plugins para WordPress: Cómo crear módulos de funciones personalizadas desde cero

Implementar la funcionalidad principal: acciones y filtros.

La fortaleza de los plugins de WordPress radica en su sistema de ganchos (Hooks), que incluye acciones (Actions) y filtros (Filters). Comprender y usarlos es fundamental para el desarrollo de plugins.

Usar ganchos de acción para agregar funcionalidades.

Los ganchos de acción te permiten insertar tu propio código en puntos específicos de la ejecución de WordPress. Por ejemplo, si quieres agregar automáticamente un fragmento de texto después del contenido de un artículo, puedes usarthe_contentUn filtro (esta es una “acción” especial). Las acciones más típicas sonwp_footerSe utiliza para agregar contenido al final de la página.

La función pública __construct() {
    add_action( 'wp_footer', array( $this, 'add_custom_footer_text' ) );
}

public function add_custom_footer_text() {
    echo '<p style="text-align: center;">¡Gracias por leer! Este contenido fue generado por mi primer plugin.</p>';
}

En este ejemplo,add_custom_footer_textEl método se invoca en el pie de página de cada página y muestra un texto personalizado.

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%.

Modificar datos utilizando los ganchos (hooks) de los filtros

Los filtros de ganchos se utilizan para modificar los datos antes de enviarlos a la base de datos o al navegador. Un ejemplo común es modificar el título de un artículo. Podemos usarthe_titleFiltros.

public function __construct() {
    add_filter( 'the_title', array( $this, 'customize_title' ) );
}

public function customize_title( $title ) {
    // 只在主循环中且不是后台管理界面时修改
    if ( ! is_admin() && in_the_loop() ) {
        return '📖 ' . $title;
    }
    return $title;
}

Esta función de filtro recibe el título original como parámetro y devuelve el título modificado. La lógica aquí es agregar un emoji de libro antes del título del artículo que se muestra en la pantalla principal.

La internacionalización de los complementos y las opciones configurables.

Para que el complemento pueda ser utilizado por usuarios de todo el mundo, la internacionalización (i18n) es un paso esencial. Además, proporcionar a los usuarios una página de configuración de fondo para configurar el comportamiento del complemento puede mejorar enormemente la profesionalidad del mismo.

Lecturas recomendadas Guía para principiantes en el desarrollo de complementos de WordPress: crea tu primer complemento funcional desde cero.

Implementar soporte para la traducción de textos.

WordPress utiliza la tecnología GNU gettext para lograr la internacionalización. Debe envolver en una función específica todas las cadenas que se muestran a los usuarios, ya sea en la interfaz frontal o en la interfaz de administración del plugin.

En primer lugar, en la cabecera del plugin del archivo principal, ya hemos definidoText DomainYDomain PathA continuación, cargue el campo de texto en la función de inicialización.

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.
public function init() {
    load_plugin_textdomain(
        'my-first-plugin',
        false,
        dirname( plugin_basename( __FILE__ ) ) . '/languages/'
    );
}

Luego, en el código, use la función de traducción en los lugares donde se muestra el texto de salida. Por ejemplo, en el texto del pie de página anterior:

\necho '<p style="text-align: center;">'¡Gracias por leer! Este contenido fue generado por mi primer plugin.'</p>';

esc_html__()La función traducirá el texto y lo escapará en HTML para garantizar su seguridad. Los traductores pueden usarlo..poY.moUtilice los archivos para proporcionar versiones en diferentes idiomas de su complemento.

Crear una página de configuración de fondo

El uso de la API de configuración de WordPress permite crear una página de configuración estándar y segura para tu complemento. Esto generalmente implica varios pasos: registrar la configuración, agregar áreas y campos de configuración, y crear una página de menú.

funciones públicas __construct() {
    add_action( 'admin_menu', array( $this, 'add_admin_menu' ) );
    add_action( 'admin_init', array( $this, 'settings_init' ) );
}

public function add_admin_menu() {
    add_options_page(
        'Configuración de mi primer plugin', // Título de la página
        'Mi plugin', // Título del menú
        'manage_options', // Permisos
        'my-first-plugin', // Slug del menú
        array( $this, 'settings_page_html' ) // Función de devolución de llamada para mostrar el HTML de la página
    );
}

public function settings_init() {
    register_setting( 'my_first_plugin_settings', 'my_first_plugin_options' ); // Registra un conjunto de configuraciones

add_settings_section(
        'my_first_plugin_section',
        __( 'Configuración básica', 'my-first-plugin' ),
        null,
        'my-first-plugin'
    );

add_settings_field(
        'footer_text',
        __( 'Texto de pie de página personalizado', 'my-first-plugin' ),
        array( $this, 'footer_text_field_html' ),
        'my-first-plugin',
        'my_first_plugin_section'
    );
}

public function footer_text_field_html() {
    $options = get_option( 'my_first_plugin_options' );
    ?&gt;
    <input type='text' name='my_first_plugin_options[footer_text]' value='<?php echo esc_attr( $options['footer_text'] ?? '' ); ?>'>
    ¿php?
}

public function settings_page_html() {
    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_first_plugin_settings' );
            do_settings_sections( 'my-first-plugin' );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="es"/></form>
    </div>
    ¿php?  
}

Ahora, los usuarios pueden configurar el texto del pie de página en la página “Configuración” -> “Mis complementos”, y túadd_custom_footer_textEl método se puede modificar para extraer el valor de esta opción, lo que hace que el complemento sea configurable.

resúmenes

A través de esta guía, hemos recorrido el proceso principal del desarrollo de plugins de WordPress: desde la configuración de un entorno local y la creación de una estructura básica de archivos, hasta la organización del código utilizando métodos orientados a objetos. Hemos explorado en profundidad los mecanismos de extensión centrales de WordPress: acciones y filtros, y hemos implementado funciones prácticas como agregar contenido al pie de página y modificar el título de los artículos. Por último, hemos mejorado la profesionalidad y la usabilidad del plugin, allanando el camino para usuarios de todo el mundo mediante la internacionalización, y hemos utilizado la API de configuración para crear una interfaz de configuración segura en el backend. El desarrollo de plugins es un proceso de aprendizaje y optimización continuos. Una vez que domines estos conocimientos básicos, podrás explorar temas más avanzados, como tipos de artículos personalizados, interacciones AJAX e integración de la API REST, para crear plugins de WordPress potentes y con un código elegante.

FAQ Preguntas más frecuentes

¿Es necesario utilizar la programación orientada a objetos para desarrollar plugins?

No es obligatorio, pero se recomienda encarecidamente. Aunque el uso de la programación procedimental (un conjunto de funciones) puede permitir implementar funcionalidades rápidamente, a medida que aumenta el número de funciones del complemento, el código se vuelve difícil de gestionar y mantener, y es más probable que se produzcan conflictos de nombres de funciones con otros complementos. La programación orientada a objetos encapsula el código mediante clases y permite$thisLos variables y espacios de nombres (en versiones más recientes de PHP) permiten organizar mejor el código y constituyen una de las mejores prácticas de la industria para crear complementos de gran y mediano tamaño.

¿Cómo manejar de manera segura la entrada del usuario o los datos provenientes de la base de datos?

Cada vez que se muestre una variable en la página, es necesario escaparla. WordPress ofrece una serie de funciones auxiliares. Se deben usar diferentes funciones según el contexto: para mostrar una variable dentro de una etiqueta o atributo HTML, se debe usar <esc_html()oesc_attr(); Para mostrarlo en una variable de JavaScript, usewp_json_encode()oesc_js(); En la salida de la URL, useesc_url()Nunca confíes en la entrada del usuario o en datos no procesados. La escapada es clave para prevenir ataques de secuencias de comandos entre sitios (XSS).

¿Qué condiciones se deben cumplir para que un complemento se incluya en el directorio oficial de WordPress?

Los complementos enviados al directorio de complementos de WordPress.org deben cumplir con una serie de normas estrictas. Estas incluyen: el código del complemento debe ser compatible con la licencia GPL; no puede incluir ningún muro de pago, código cifrado o confuso; debe incluir soporte completo para la internacionalización; debe seguir los estándares de codificación y las normas de documentación de WordPress; no puede realizar acciones maliciosas como la captura de datos telefónicos o la minería de criptomonedas. Además, el archivo principal del complemento debe contener información estándar de encabezado del complemento y debe proporcionar una documentación completa.readme.txtDocumentos.

¿Cómo debo depurar el código de mi complemento?

En primer lugar, asegúrate de que esté activado en el entorno de desarrollo.WP_DEBUGPara una depuración más compleja, se puede usarerror_log()El funcionamiento de la función consiste en registrar la información en el registro de errores del servidor o utilizarlo para otros fines.var_dump()Ywp_die()Para comprobar el valor de las variables (solo en entornos de desarrollo). Un método más eficiente es utilizar la herramienta Xdebug del entorno de desarrollo integrado (como PhpStorm) para depurar paso a paso. Además, WordPress tiene unWP_DEBUG_LOGYWP_DEBUG_DISPLAYLas constantes pueden controlar si los errores se registran en un archivo de registro o se muestran en la pantalla.