Guía definitiva para el desarrollo de complementos de WordPress: crear funciones personalizadas de cero a uno.

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

Entorno de desarrollo de plugins para WordPress y preparaciones básicas

Antes de comenzar a escribir código, contar con un entorno de desarrollo estable e aislado es el primer paso hacia el éxito. Esto no solo protege su sitio web en producción de los efectos del código de prueba, sino que también facilita el proceso de depuración.

Crear un entorno de desarrollo local

Se recomienda utilizar paquetes de software para servidores locales, como Local by Flywheel, XAMPP o MAMP. Estos herramientas permiten instalar de forma sencilla un entorno completo que incluye PHP, MySQL y Apache/Nginx. Asegúrese de que la versión de PHP que utilice cumpla con los requisitos de la versión de WordPress a la que se dirige; generalmente se recomienda utilizar PHP 7.4 o una versión más reciente para obtener un mejor rendimiento y soporte de seguridad.

Crear el archivo principal del plugin

Cada plugin de WordPress debe tener un archivo principal, que sirve como punto de entrada para el mismo. Este archivo debe ser colocado en una ubicación específica dentro del directorio del plugin. wp-content/plugins Debe colocarse en una carpeta independiente dentro del directorio y darle un nombre único. Por ejemplo, si desea crear un complemento llamado “Saludos”, puede crear una carpeta con ese nombre. my-first-plugin carpeta y crear el archivo principal en ella my-first-plugin.php

Lecturas recomendadas Guía definitiva para el desarrollo de plugins de WordPress: desde cero hasta la creación de un plugin de nivel comercial.

El inicio de este archivo debe contener una anotación de cabecera específica para el plugin, que sirve para proporcionar a WordPress la información básica sobre el mismo. A continuación se muestra un ejemplo muy básico:

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).
<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://example.com/my-first-plugin
 * Description:       这是一个用于学习插件开发的简单插件。
 * Version:           1.0.0
 * Author:            你的名字
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 */

Estructura central del plugin y mecanismo de ganchos (hooks)

El núcleo del desarrollo de plugins para WordPress radica en comprender y utilizar su sistema de “ganchos” (Hooks). Los ganchos permiten que su código se integre en los procesos centrales de WordPress en momentos específicos, lo que le permite modificar o agregar funcionalidades sin necesidad de modificar los archivos principales del sistema.

Comprender los ganchos de acción (action hooks) y los ganchos de filtro (filter hooks)

Los ganchos se dividen principalmente en dos categorías: Acciones (Actions) y Filtros (Filters). Los ganchos de acción ejecutan su código cuando ocurre un evento específico, como la publicación de un artículo o la carga de la interfaz de administración. Usted los utiliza para... add_action() Las funciones se utilizan para realizar el montaje (es decir, para preparar los datos antes de su uso). Los ganchos de filtro (filter hooks), por su parte, sirven para modificar los datos; permiten que usted modifique sus valores antes de que sean enviados a la base de datos o al navegador. add_filter() Se utiliza una función para realizar el montaje.

Por ejemplo, para agregar texto personalizado en el pie de página de un sitio web, se puede utilizar… wp_footer Este gancho de acción:

function myplugin_add_footer_text() {
    echo '<p style="text-align:center;">¡Gracias por utilizar este sitio web!</p>';
}
add_action( 'wp_footer', 'myplugin_add_footer_text' );

Crear la página de administración de plugins

Muchos plugins requieren que se proporcionen páginas de configuración en el panel de administración de WordPress. Esto se suele lograr mediante el proceso de «montar» (o «incorporar») esos plugins en el sistema de WordPress. admin_menu Se puede lograr esto mediante el uso de ganchos de acción (action hooks). Necesitas definir una función y utilizarla dentro de dicha función. add_menu_page() o add_options_page() Se utilizan funciones para registrar la página y se define otra función para generar el contenido HTML de la misma.

Lecturas recomendadas Desde cero: Guía completa para el desarrollo de complementos de WordPress y tutorial práctico

function myplugin_add_admin_menu() {
    add_options_page(
        '我的插件设置', // 页面标题
        '我的插件',     // 菜单标题
        'manage_options', // 权限
        'myplugin-settings', // 菜单别名
        'myplugin_render_settings_page' // 用于显示页面内容的函数
    );
}
add_action( 'admin_menu', 'myplugin_add_admin_menu' );

function myplugin_render_settings_page() {
    ?&gt;
    <div class="wrap">
        <h2>Configuraciones de mi plugin</h2>
        <form method="post" action="/es/options.php/" data-trp-original-action="options.php">
            <?php
            settings_fields( 'myplugin_settings_group' );
            do_settings_sections( 'myplugin-settings' );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="es"/></form>
    </div>
    ¿php?  
}

Implementar funciones de plugins y el procesamiento de datos.

Un complemento (plugin) completo suele necesitar manejar la entrada de datos del usuario, guardar las configuraciones y interactuar con una base de datos. WordPress ofrece una potente API para simplificar estas operaciones.

Usar la API de configuración para guardar las opciones.

Tratar manualmente los envíos de formularios y las operaciones en la base de datos es tanto tedioso como inseguro. La configuración de API en WordPress ofrece una forma estandarizada y segura de registrar, verificar y guardar ajustes. Esto implica el uso de tres funciones principales:register_setting()add_settings_section() Y add_settings_field()

El siguiente ejemplo muestra cómo registrar la configuración de un campo de texto:

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%.
function myplugin_settings_init() {
    register_setting( 'myplugin_settings_group', 'myplugin_greeting_text' );

add_settings_section(
        'myplugin_section',
        '基础设置',
        null,
        'myplugin-settings'
    );

add_settings_field(
        'myplugin_field_greeting',
        '问候语',
        'myplugin_field_greeting_render',
        'myplugin-settings',
        'myplugin_section'
    );
}
add_action( ‘admin_init’, ‘myplugin_settings_init’ );

function myplugin_field_greeting_render() {
    $value = get_option( ‘myplugin_greeting_text’, ‘你好,世界!’ );
    echo ‘<input type=“text” name=“myplugin_greeting_text” value=“’ . esc_attr( $value ) . ‘” />’;
}

Crear tablas de bases de datos personalizadas

Para los plugins que necesitan almacenar datos relacionales complejos, es posible que sea necesario crear tablas de base de datos personalizadas. Esto generalmente se realiza al activar el plugin. Es necesario escribir una función y enlazarla con los ganchos de registro y activación de WordPress. dbDelta() La función se utiliza para ejecutar las instrucciones SQL necesarias para crear o actualizar tablas, y puede manejar de manera inteligente los cambios en la estructura de las mismas.

Primero, registre el gancho de activación en su archivo principal del plugin:

register_activation_hook( __FILE__, ‘myplugin_create_database_table’ );

Luego, defina la función para crear la tabla:

Lecturas recomendadas Guía de introducción al desarrollo de complementos de WordPress: crea tu primer complemento desde cero.

function myplugin_create_database_table() {
    global $wpdb;
    $table_name = $wpdb->prefix . ‘myplugin_data’;
    $charset_collate = $wpdb->get_charset_collate();

$sql = “CREATE TABLE $table_name (
        id mediumint(9) NOT NULL AUTO_INCREMENT,
        name varchar(100) NOT NULL,
        email varchar(100) NOT NULL,
        created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        PRIMARY KEY (id)
    ) $charset_collate;”;

require_once( ABSPATH . ‘wp-admin/includes/upgrade.php’ );
    dbDelta( $sql );
}

Seguridad de los plugins, internacionalización y preparación para su publicación

Los complementos (plugins) que han sido desarrollados deben someterse a medidas de fortalecimiento de seguridad, localización de idiomas y empaquetamiento según estándares establecidos, antes de poder ser entregados de manera segura a los usuarios o subidos al directorio oficial.

Implementar las mejores prácticas de seguridad.

La seguridad es de suma importancia en el desarrollo de plugins. Siempre se debe verificar (comprobar el formato) y limpiar (eliminar las partes dañinas) los datos introducidos por los usuarios. Utilice las funciones que ofrece WordPress para garantizar la seguridad de su plugin. esc_html()esc_attr()sanitize_text_field() Se utiliza para generar o procesar datos. Al realizar consultas en la base de datos, se emplea… $wpdb->prepare() Métodos para prevenir ataques de inyección SQL. Al mismo tiempo, se utiliza… current_user_can() Verifique los permisos de los usuarios para asegurarse de que solo aquellos autorizados puedan realizar operaciones sensibles.

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.

Implementar la internacionalización del complemento

Para que su plugin pueda ser utilizado por usuarios de todo el mundo, es necesario realizar la preparación para la internacionalización (i18n). Esto significa que todas las cadenas de texto dirigidas al usuario no deben escribirse directamente en el código, sino que deben ser envueltas utilizando las funciones de traducción de WordPress. La función más utilizada es… () Se utiliza para mostrar el resultado de la traducción.() Se utiliza para obtener la cadena de texto traducida, así como… _e() Se utiliza para la salida directa de la traducción.

En su código, debería escribirlo de la siguiente manera:

$greeting = __( ‘你好,世界!’, ‘my-first-plugin’ );
echo esc_html( $greeting );

_e( ‘设置已保存。’, ‘my-first-plugin’ );

Tenga en cuenta que el segundo parámetro de la función de traducción, “Text Domain” (dominio de texto), debe coincidir con el que se define en las notas del encabezado del plugin. Text Domain Completamente de acuerdo. Luego, puede utilizar herramientas como Poedit para generar lo que necesite. .pot Archivos de plantilla, para que los traductores los utilicen para crear traducciones. .po Y .mo Traducir el documento.

resúmenes

El desarrollo de plugins para WordPress es un proceso que convierte las ideas en funciones reales, y se basa en una comprensión profunda de la arquitectura central de WordPress, en particular de su sistema de ganchos (hooks). Desde la configuración del entorno, la escritura de los archivos principales, el uso de ganchos de acciones y filtros, hasta el manejo de datos a través de las API de configuración y de la base de datos, cada paso sigue un patrón claro. Finalmente, gracias a prácticas de seguridad rigurosas y un soporte completo para la internacionalización, su plugin puede transformarse de un proyecto personal en un producto listo para su publicación. Una vez que domine estos fundamentos, podrá explorar áreas más complejas, como la personalización de tipos de artículos, la integración con API REST y el desarrollo de bloques con Gutenberg, para crear extensiones para WordPress más potentes y modernas.

FAQ Preguntas más frecuentes

¿Es necesario dominar PHP para desarrollar un plugin de WordPress?

Sí, PHP es el lenguaje de programación principal utilizado para desarrollar WordPress y sus plugins. Es esencial que domine los conceptos básicos de PHP, como la sintaxis, las funciones, los arrays y la programación orientada a objetos. Además, tener un conocimiento básico de HTML, CSS y JavaScript es crucial, ya que será necesario manejar la presentación y la interacción del lado del usuario ( frontend).

¿Cómo depurar un plugin de WordPress en desarrollo?

Se recomienda activar el modo de depuración de WordPress. wp-config.php En el documento, se indicará que... WP_DEBUG Los constantes se establecen en trueEsto mostrará todos los errores, advertencias y notificaciones de PHP en la pantalla. Además, es posible utilizarlo para... error_log() La función escrive información de depuración en el registro de errores del servidor, o utiliza las herramientas de desarrollo del navegador para depurar el código JavaScript del lado cliente.

¿Cómo evitar que los nombres de las funciones en un plugin coincidan con los de otros plugins?

Para evitar conflictos entre nombres de funciones, clases o constantes, siempre se debe utilizar un prefijo único. La mejor práctica es utilizar el nombre del plugin o una abreviatura como prefijo. Por ejemplo, si su plugin se llama “Awesome Slider”, podría utilizar algo como: as_ o awesome_slider_ Como prefijo para todas las funciones personalizadas. El mismo principio debe aplicarse también a los nombres de las clases.

¿Se pueden enviar plugins pagos al directorio oficial de plugins de WordPress?

No es posible. El directorio oficial de plugins de WordPress solo acepta plugins que cumplan con la licencia GPL y que sean completamente gratuitos. Si ha desarrollado un plugin de pago (de nivel avanzado), deberá distribuirlo y venderlo en su propio sitio web. No obstante, muchos plugins de pago ofrecen una versión gratuita que incluye funciones básicas, la cual puede ser enviada al directorio oficial como canal de promoción y prueba para su versión avanzada.