Guía completa para el desarrollo de complementos de WordPress: un tutorial práctico desde el nivel inicial hasta el avanzado.

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

Configuración del entorno de desarrollo para plugins de WordPress

Antes de comenzar a escribir tu primer plugin, es esencial contar con un entorno de desarrollo estable, aislado y completamente funcional. Esto no solo protegerá tu sitio web en producción, sino que también te proporcionará todos los herramientas necesarias para el depurado y las pruebas.

Configuración del entorno de desarrollo local

La forma más recomendable es utilizar un entorno de servidor local, como Local by Flywheel, XAMPP o MAMP. Estas herramientas permiten instalar WordPress con un solo clic y integran PHP, MySQL y un servidor web. Asegúrese de que la versión de PHP que utiliza sea compatible con la versión oficial recomendada por WordPress, y active la función de generación de informes de errores; esto ayudará a detectar posibles problemas en las fases iniciales del desarrollo.

En el directorio de instalación de tu WordPress… wp-content/plugins Dentro de la carpeta, crea una carpeta independiente para tu nuevo plugin, por ejemplo: my-first-pluginTodos los archivos de los plugins se colocarán aquí.

Lecturas recomendadas Análisis completo de la optimización SEO: Una guía práctica desde la arquitectura técnica hasta la estrategia de contenidos

Elección de editores de código y herramientas de depuración

Elegir un editor de código potente puede mejorar significativamente la eficiencia del desarrollo; opciones como Visual Studio Code, PHPStorm o Sublime Text son muy recomendables. No olvide instalar extensiones como los fragmentos de código para WordPress, PHP IntelliSense y las herramientas de depuración para PHP en su editor.

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

Para el depurado, además de activar las opciones de WordPress… WP_DEBUG Patrón (en) wp-config.php Ajustes configurados en el archivo. define('WP_DEBUG', true);También se recomienda instalar el plugin Query Monitor. Se trata de una herramienta para desarrolladores que muestra en tiempo real información clave sobre consultas a la base de datos, errores de PHP, hooks y scripts, convirtiéndose en una herramienta muy versátil y útil para el desarrollo de plugins.

Crea tu primer plugin de WordPress.

Un plugin estándar de WordPress necesita, al menos, un archivo principal. Este archivo debe contener información específica sobre el plugin, para que WordPress pueda reconocerlo y cargarlo.

Escribir el archivo principal del plugin

En la carpeta de tus plugins (por ejemplo… my-first-pluginEn ese contexto, cree un archivo PHP que suele llevar el nombre del plugin, por ejemplo: my-first-plugin.phpEl inicio del archivo debe contener las notas de cabecera del 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
 */

Esta nota es el “dossier de identidad” del plugin. En ella, se proporciona información crucial sobre las características, funciones y comportamiento del plugin.Plugin Name Estos campos son obligatorios; el resto son optativos. WordPress utiliza esta información para mostrar tus plugins en la lista de plugins del backend.

Lecturas recomendadas Guía completa para el desarrollo de plugins para WordPress: desde cero hasta avances avanzados

Implementar una función básica.

Vamos a agregar una función sencilla a este complemento: agregar automáticamente un texto personalizado al final del contenido del artículo. Para ello, utilizaremos… the_content Filtros.

Debajo de la información del encabezado del plugin, añada el siguiente código:

// 在文章内容末尾添加自定义文本
function myfp_add_footer_text($content) {
    // 仅对单篇文章生效
    if (is_single()) {
        $custom_text = '<p><em>¡Gracias por leer! Este artículo cuenta con el apoyo de “Mi primer plugin”.</em></p>';
        $content .= $custom_text;
    }
    return $content;
}
add_filter('the_content', 'myfp_add_footer_text');

Después de guardar el archivo, accede a la página de “Plugins” en el panel de administración de WordPress. Deberías ver “Mi primer plugin”. Actívalo y luego navega por un artículo del sitio web; verás que el texto predefinido ya se ha añadido al final del artículo. Este ejemplo sencillo demuestra cómo utilizar los “Filtros” para modificar la salida de WordPress.

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

Adentrándonos en el corazón de los plugins: Ganchos (hooks) y API

La piedra angular de las potentes funcionalidades de los plugins de WordPress es su sistema de “ganchos (Hooks)” y su amplia API. Comprenderlos es clave para un desarrollo avanzado.

Comprender los hooks de acciones y filtros

Los ganchos se dividen en dos tipos principales: Acción (Action) y Filtro (Filter).
Los ganchos de acción (action hooks) te permiten insertar código personalizado en puntos específicos de ejecución de WordPress, como al publicar un artículo o al cargar la interfaz administrativa. add_action() Se trata de una función diseñada para realizar la montación de algún recurso. Solo ejecuta la operación correspondiente y no espera recibir un valor de retorno.
Los ganchos de filtro (filter hooks) te permiten modificar los datos que genera WordPress durante su proceso de procesamiento. add_filter() Se trata de una función utilizada para realizar el montaje de algún elemento. Debes recibir un valor de entrada, modificarlo y luego devolverlo.

Por ejemplo, enviar un correo electrónico al usuario cuando inicia sesión es una acción.

Lecturas recomendadas Cómo crear un sitio web de comercio electrónico independiente con WooCommerce: una guía práctica completa de principio a fin.

function myfp_on_user_login($user_login, $user) {
    wp_mail($user->user_email, '欢迎回来!', '您刚刚成功登录了网站。');
}
add_action('wp_login', 'myfp_on_user_login', 10, 2);

Y modificar el título del artículo es, en efecto, un “filtro” que se utiliza para procesar el contenido del texto.

function myfp_prepend_title($title) {
    return '精选:' . $title;
}
add_filter('the_title', 'myfp_prepend_title');

Descripción detallada de las interfaces API más comunes

WordPress ofrece una gran cantidad de funciones API seguras que te evitan tener que operar directamente la base de datos.
* 选项 API:使用 add_option(), get_option(), update_option() Se utiliza para almacenar y recuperar los datos de configuración de los plugins. Estos datos se guardan en… wp_options En la tabla.
* 设置 API:用于在后台“设置”或独立页面中创建标准化、安全且可验证的表单字段。它简化了设置页面的创建过程,并自动处理安全校验(Nonce)和数据存储。核心函数包括 register_setting(), add_settings_section() Y add_settings_field()
* 数据库 API:通过 $wpdb El objeto global permite realizar operaciones personalizadas en la base de datos. Ofrece funcionalidades como… $wpdb->insert(), $wpdb->update(), $wpdb->get_results() Este método ya ha tomado en cuenta la gestión de los prefijos de las tablas y la protección contra inyecciones SQL.
* HTTP API:使用 wp_remote_get() o wp_remote_post() Se utiliza para iniciar solicitudes HTTP remotas. Es más eficiente que las funciones nativas de PHP. file_get_contents() Más seguro, con mejor compatibilidad, y soporta SSL y proxies.

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.

Construir el backend de un plugin y la interfaz de usuario

Un plugin maduro suele necesitar una página de configuración que permita a los usuarios personalizar su comportamiento. WordPress ofrece varias opciones para agregar estas páginas al menú de administración.

Crear un menú de administración y submenús

utilizar add_menu_page() La función permite agregar un elemento de menú de nivel superior en la barra de navegación izquierda del lado posterior. add_submenu_page() Se pueden agregar páginas secundarias a ellas. Estas funciones suelen utilizarse en… admin_menu Se llama desde el gancho de acción (action hook).

A continuación, se muestra un ejemplo de una página para crear un menú principal y sus configuraciones:

// 添加后台菜单
function myfp_add_admin_menu() {
    // 添加顶级菜单
    add_menu_page(
        '我的插件设置', // 页面标题
        '我的插件',     // 菜单标题
        'manage_options', // 权限要求
        'myfp-settings', // 菜单slug
        'myfp_settings_page_html', // 用于输出页面内容的回调函数
        'dashicons-admin-generic', // 图标
        80 // 位置
    );
}
add_action('admin_menu', 'myfp_add_admin_menu');

// 设置页面HTML内容
function myfp_settings_page_html() {
    // 权限检查
    if (!current_user_can('manage_options')) {
        return;
    }
    ?&gt;
    <div class="wrap">
        <h1><?php echo esc_html(get_admin_page_title()); ?></h1>
        <form action="/es/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            // 输出设置字段、节和安全字段
            settings_fields('myfp_options'); // 与 register_setting() 的选项组名匹配
            do_settings_sections('myfp-settings'); // 与页面slug匹配
            submit_button('保存设置');
            ?>
        <input type="hidden" name="trp-form-language" value="es"/></form>
    </div>
    ¿php?  
}

Construir formularios utilizando la API de configuración

Para que el formulario anterior funcione realmente, necesitamos utilizar la API de configuración para registrar los campos. Esto se suele hacer en… admin_init Se completó en el gancho.

// 初始化设置
function myfp_settings_init() {
    // 注册一个设置选项
    register_setting('myfp_options', 'myfp_settings');

// 添加一个设置节
    add_settings_section(
        'myfp_section_basic',
        '基础设置',
        null, // 节描述回调函数,可为空
        'myfp-settings'
    );

// 为节添加一个文本字段
    add_settings_field(
        'myfp_field_footer_text',
        '页脚文本',
        'myfp_field_footer_text_html', // 渲染字段HTML的回调函数
        'myfp-settings',
        'myfp_section_basic',
        ['label_for' => 'myfp_field_footer_text']
    );
}
add_action('admin_init', 'myfp_settings_init');

// 字段HTML渲染函数
function myfp_field_footer_text_html() {
    $options = get_option('myfp_settings');
    $value = $options['footer_text'] ?? '默认文本';
    ?>
    <input type="text"
           id="myfp_field_footer_text"
           name="myfp_settings[footer_text]"
           value="<?php echo esc_attr($value); ?>"
           class="regular-text">
    <?php
}

Mediante esta combinación, hemos creado una página de configuración del backend estandarizada que cuenta con funciones de validación y almacenamiento de datos. Una vez que el usuario guarda los cambios, los valores se guardarán de manera segura. get_option('myfp_settings') Fue obtenido y utilizado en las funciones del plugin.

resúmenes

El desarrollo de plugins para WordPress es un proceso que comienza con la comprensión de su estructura básica (cabezas de los plugins, organización de archivos) y que, gradualmente, te permite dominar sus mecanismos centrales (ganchos, API). Al crear un entorno local profesional, puedes realizar experimentos y depurar código de manera segura. Crear tu primer plugin te ayudará a familiarizarte con el proceso por el cual WordPress reconoce y carga dichos plugins. Entender en profundidad los ganchos de acciones y filtros, así como los API relacionados con opciones, configuraciones y la base de datos, es esencial para desarrollar plugins potentes y seguros. Finalmente, utilizando las funciones del menú de administración y los API de configuración proporcionados por WordPress, puedes crear interfaces de administración para los usuarios que sean consistentes y fáciles de configurar. Siguiendo estos pasos y buenas prácticas, podrás desarrollar plugins para WordPress que satisfagan una amplia gama de necesidades, desde cero.

FAQ Preguntas más frecuentes

¿Qué conocimientos básicos se necesitan para desarrollar un complemento de WordPress?

Es necesario que tengas conocimientos básicos del lenguaje de programación PHP, ya que el plugin está escrito principalmente en PHP. Además, es importante tener un entendimiento básico de HTML, CSS y JavaScript, ya que son esenciales para crear interfaces de presentación e interacción en el lado del usuario. Conocer los conceptos básicos de las bases de datos MySQL (como crear, eliminar, modificar y consultar datos) también te ayudará a comprender cómo WordPress realiza las operaciones con los datos. Finalmente, es esencial entender la arquitectura básica de WordPress y los etiquetas de plantillas más comunes.

¿Cómo puedo asegurarme de que el plugin que he desarrollado sea seguro?

Para garantizar la seguridad de los plugins, es necesario seguir varias buenas prácticas. En primer lugar, se debe verificar, limpiar y escapar todos los datos introducidos por los usuarios. Utiliza las funciones proporcionadas por WordPress para ello. esc_html(), esc_attr(), sanitize_text_field() Y wp_kses()En segundo lugar, al realizar cualquier operación que implique la modificación de datos (como el envío de formularios), es necesario utilizar un Nonce (token único) para verificar la intención y el origen de la solicitud. Finalmente, al interactuar directamente con la base de datos, asegúrese de utilizar… $wpdb Utilice los métodos proporcionados por las clases o APIs de nivel más avanzado para evitar escribir consultas SQL a mano, lo que reduce el riesgo de ataques de inyección.

¿Puede tener cualquier nombre el archivo principal del plugin?

Sí, pero se deben seguir ciertas normas. El nombre del archivo principal de PHP puede ser cualquiera, aunque se recomienda utilizar uno que coincida con el nombre del directorio del plugin o con el nombre del plugin en sí, escrito en letras minúsculas y separado por guiones. Por ejemplo: my-awesome-plugin.phpLo importante es que el archivo debe contener las anotaciones de cabecera de los plugins correctas (es decir, las instrucciones necesarias para que los plugins funcionen adecuadamente). Plugin Name: (Etc.), ya que WordPress identifica los plugins al escanear estos comentarios específicos en el contenido de los archivos, y no por el nombre de los archivos.

¿Cómo puedo agregar soporte para múltiples idiomas a mi plugin?

Para agregar soporte multilingüe (internacionalización y localización) a un plugin, se siguen principalmente tres pasos. El primer paso consiste en, dentro del código del plugin, reemplazar todas las cadenas de texto que necesitan ser traducidas por sus correspondientes versiones en los idiomas deseados. __() o _e() Envuelva las funciones correspondientes y configure el dominio de texto (Text Domain). En el segundo paso, declare correctamente estas opciones en las notas del encabezado del plugin. Text Domain Y Domain PathEn el tercer paso, se utiliza una herramienta como Poedit para analizar el código del plugin y generar lo necesario. .pot Archivo de plantilla; luego, traduce cada idioma y genera el contenido correspondiente. .po Y .mo Coloque el archivo en el directorio correspondiente al idioma especificado. WordPress cargará automáticamente la traducción correspondiente según la configuración de idioma del sitio web.