Desde cero: Los pasos clave y las mejores prácticas para desarrollar plugins para WordPress
El desarrollo de plugins para WordPress es una forma poderosa de expandir las funcionalidades de un sitio web basado en este sistema. Al crear plugins personalizados, los desarrolladores pueden agregar características únicas al sitio sin necesidad de modificar el código central de WordPress. Esto no solo aumenta la flexibilidad del sitio, sino que también asegura que las funciones personalizadas funcionen de manera segura y estable incluso después de las actualizaciones del núcleo de WordPress. Un plugin de WordPress bien estructurado sigue una estructura de directorios específica, estándares de codificación y la API de WordPress.
Este artículo te guiará a través del proceso completo desde la creación del primer archivo de plugin hasta su publicación segura, abarcando los conceptos clave, herramientas y buenas prácticas que debes conocer durante el desarrollo.
Lecturas recomendadas Guía completa para el desarrollo de plugins para WordPress: Cómo crear funciones de extensión de alta calidad para WordPress desde cero.。
Entorno de desarrollo y estructura básica
Antes de escribir cualquier código, es de vital importancia establecer un entorno de desarrollo adecuado. Se recomienda utilizar herramientas de desarrollo locales, como Local by Flywheel, XAMPP o MAMP, que permiten configurar rápidamente un entorno que incluya PHP, MySQL y un servidor web. Además, un editor de código (como VS Code o PhpStorm) así como herramientas de depuración (como Query Monitor o Debug Bar) son también esenciales.
Crea tu primer archivo de plugin.
La forma más básica de un plugin para WordPress es un archivo que se encuentra en la carpeta de plugins del sitio web. /wp-content/plugins/ Los archivos PHP que se encuentran en el directorio deben contener, en la parte superior de su archivo principal, las anotaciones de información estándar sobre el plugin. Esto es esencial para que WordPress pueda reconocer y administrar el plugin de manera correcta.
Crea uno llamado… my-first-plugin.php El archivo, y ingrese el siguiente contenido:
<?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
*/ Guarde este archivo en: /wp-content/plugins/my-first-plugin/ En la carpeta correspondiente, y luego al iniciar sesión en la página de “Plugins” del backend de WordPress, podrás ver y activar este plugin. Aunque por el momento no tiene ninguna función, su estructura ya está completa.
Directorio de plugins y organización de archivos
A medida que aumentan las funcionalidades, un único archivo se vuelve más difícil de mantener. Un directorio de plugins bien estructurado generalmente incluye las siguientes partes:
* 主插件文件:plugin-name.php
* includes/ Directorio: Alberga los archivos que contienen las clases o funciones de funcionalidades esenciales.
* admin/ Directorio: Alberga el código relacionado con el backend, así como los archivos CSS y JavaScript.
* public/ Directorio: Alberga el código relacionado con la interfaz de usuario, así como los archivos CSS y JavaScript.
* assets/ Directorio: Alberga imágenes, hojas de estilo y archivos de scripts.
* languages/ Directorio: Alberga los archivos de traducción internacional (.pot, .po, .mo).
* uninstall.php Archivo: Opciones utilizadas para limpiar la base de datos cuando un complemento (plugin) es eliminado.
Lecturas recomendadas Guía completa para el desarrollo de plugins para WordPress: desde los fundamentos hasta la práctica práctica。
Conceptos y tecnologías centrales del desarrollo
El núcleo del desarrollo de plugins para WordPress radica en comprender y utilizar de manera experta las API (Interficies de Aplicación) que ofrece el sistema, que incluyen principalmente los ganchos de acción (Action Hooks), los ganchos de filtro (Filter Hooks) y los códigos cortos (Shortcodes).
Dominar el uso de los ganchos de acción (action hooks).
Los ganchos de acción (action hooks) te permiten “incorporar” tu propio código en momentos específicos durante el funcionamiento de WordPress. add_action() Las funciones pueden permitir que tus funciones personalizadas se conecten (o “se monten”) a un determinado “gancho” (hook).
Por ejemplo, el siguiente código agrega una etiqueta meta personalizada en la parte superior de todas las páginas:
function myplugin_add_custom_meta() {
echo '<meta name="my-custom-meta" content="value">';
}
add_action( 'wp_head', 'myplugin_add_custom_meta' ); Otro ejemplo común es ejecutar algunas operaciones de inicialización cuando un complemento (plugin) se activa, como crear tablas en una base de datos. Esto requiere que las funciones correspondientes sean montadas (es decir, que se asocien) con los componentes del sistema en el momento de la activación del complemento. register_activation_hook En el gancho.
Modificar el contenido utilizando filtros.
Los ganchos de filtro (filter hooks) se utilizan para modificar los datos mientras WordPress los procesa. Puedes utilizarlos para realizar ajustes o modificaciones en el contenido que se muestra en tu sitio web. add_filter() Existen funciones que permiten modificar el contenido de texto, los valores de las opciones, etc. Las funciones de filtro deben tener un valor de retorno.
El siguiente ejemplo agrega automáticamente un texto personalizado al final del contenido del artículo:
Lecturas recomendadas Guía completa para el desarrollo de plugins para WordPress: Crea tu primer plugin funcional desde cero。
function myplugin_modify_post_content( $content ) {
if ( is_single() ) {
$custom_text = '<p><em>¡Gracias por leer este artículo!</em></p>';
$content .= $custom_text;
}
return $content;
}
add_filter( 'the_content', 'myplugin_modify_post_content' ); Creación y gestión de códigos cortos
Los códigos cortos permiten a los usuarios insertar fácilmente contenido dinámico generado por plugins en artículos, páginas o herramientas. add_shortcode() Una función puede registrar un nuevo código corto.
Regístrese con un nombre llamado… [greeting] Es un código corto que puede mostrar diferentes saludos en función de la hora:
function myplugin_greeting_shortcode( $atts ) {
$hour = date( 'G' );
$greeting = ( $hour ¿'Buenos días!' : ( ($hour)</12> < 18 ) ? '下午好!' : '晚上好!' );
return '<div class="greeting">'`. esc_html($greeting).`'</div>'『Hola, mundo』;
?>
; Seguridad de plugins y gestión de datos
Desarrollar un complemento (plugin) seguro es el primer paso para proteger los sitios web y los datos de los usuarios. Esto implica la validación de los datos ingresados, el escape de los datos generados en la salida, la verificación de permisos y el manejo seguro de los datos en sí.
Implementar validación de datos y escape de caracteres.
Nunca confíes en cualquier dato ingresado por el usuario. Antes de guardar los datos en la base de datos o mostrarlos en el navegador, es necesario verificarlos y escapar los caracteres especiales que puedan causar problemas (como los comandos de ejecución).
- Verificación: Uso
sanitize_text_field(),sanitize_email(),intval()Funciones como estas se utilizan para limpiar la entrada proporcionada por el usuario. - Escape: Al enviar datos a HTML, JavaScript o URL, utiliza las funciones de escape correspondientes.
esc_html(),esc_js(),esc_url()。
Por ejemplo, procesar de manera segura y mostrar el nombre de usuario enviado a través de un formulario:
$user_input = $_POST['username'] ?? ''; // 使用空合并运算符提供默认值
$clean_username = sanitize_text_field( $user_input );
echo '你好,' . esc_html( $clean_username ); Usar la API de opciones de WordPress
Para los ajustes simples que necesitan ser almacenados (como botones de encendido/apagado, texto, etc.), se debe utilizar la API de opciones de WordPress. Esta API ofrece la funcionalidad necesaria para gestionar dichos datos de manera eficiente. add_option(), get_option(), update_option() Y delete_option() Funciones como estas permiten almacenar datos de manera segura. wp_options En la tabla.
Crea un conjunto de configuraciones para un plugin y obténlo.
// 保存一个选项
update_option( 'myplugin_setting_color', '#336699' );
// 获取一个选项,如果不存在则使用默认值
$color = get_option( 'myplugin_setting_color', '#000000' ); Crear tablas de bases de datos personalizadas
Cuando un plugin necesita almacenar datos relacionales complejos, es posible que sea necesario crear tablas de base de datos personalizadas. Esto generalmente debe realizarse al activar el plugin y debe seguir las convenciones del esquema de la base de datos de WordPress.
En my-first-plugin.php En el código, se agrega una función para crear la tabla al gancho de activación del plugin:
function myplugin_create_custom_table() {
global $wpdb;
$table_name = $wpdb->prefix . 'myplugin_items'; // 使用 $wpdb->prefix 确保表前缀正确
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE IF NOT EXISTS $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
name 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 );
}
register_activation_hook( __FILE__, 'myplugin_create_custom_table' ); Construir una interfaz de administración para el backend de un plugin
Crear una página de configuración para tu plugin con un diseño intuitivo es clave para ofrecer una buena experiencia de usuario. WordPress proporciona varias API para simplificar el proceso de creación de menús de administración, páginas de configuración y formularios.
Añadir menú de administración y submenúes
utilizar add_menu_page() Y add_submenu_page() Las funciones pueden permitir que tu plugin añada elementos de menú a la barra lateral del lado administrativo de WordPress.
El siguiente código añade un menú principal llamado “Mis plugins” y un submenú llamado “Ajustes”:
function myplugin_add_admin_menu() {
// 添加顶级菜单
add_menu_page(
'我的插件设置', // 页面标题
'我的插件', // 菜单标题
'manage_options', // 所需权限
'myplugin-dashboard', // 菜单 Slug
'myplugin_dashboard_page', // 回调函数,用于输出页面内容
'dashicons-admin-generic', // 图标
30 // 菜单位置
);
// 添加子菜单
add_submenu_page(
'myplugin-dashboard', // 父菜单 Slug
'插件设置', // 页面标题
'设置', // 菜单标题
'manage_options', // 权限
'myplugin-settings', // 子菜单 Slug
'myplugin_settings_page' // 回调函数
);
}
add_action( 'admin_menu', 'myplugin_add_admin_menu' );
// 定义“仪表盘”页面的回调函数
function myplugin_dashboard_page() {
echo '<div class="wrap"><h1>Mi panel de instrumentos para plugins</h1></div>';
}
// 定义“设置”页面的回调函数
function myplugin_settings_page() {
echo '<div class="wrap"><h1>Configuraciones de mi plugin</h1></div>';
} API de configuración integrada para crear formularios
La configuración del API de WordPress proporciona un método seguro y estandarizado para crear, verificar y guardar ajustes de formularios. Esto implica el registro de dichos ajustes, así como la adición de áreas y campos de configuración.
A continuación se muestra un ejemplo sencillo para crear una página de configuración que contenga un campo de texto:
function myplugin_settings_init() {
// 注册一个新的设置项 “myplugin_settings”
register_setting( 'myplugin_settings_group', 'myplugin_settings' );
// 添加一个新的设置区域
add_settings_section(
'myplugin_section_basic',
'基础设置',
null, // 区域描述的回调函数,这里不需要
'myplugin-settings' // 页面 Slug
);
// 在区域内添加一个字段
add_settings_field(
'myplugin_field_api_key',
'API 密钥',
'myplugin_field_api_key_callback', // 渲染字段 HTML 的回调函数
'myplugin-settings',
'myplugin_section_basic'
);
}
add_action( 'admin_init', 'myplugin_settings_init' );
// 字段的回调函数
function myplugin_field_api_key_callback() {
$options = get_option( 'myplugin_settings' );
$value = $options['api_key'] ?? '';
echo '<input type="text" name="myplugin_settings[api_key]" value="' . esc_attr( $value ) . '" class="regular-text">';
}
// 修改之前的设置页面回调函数,以输出表单
function myplugin_settings_page() {
?>
<div class="wrap">
<h1>Configuraciones de mi plugin</h1>
<form action="/es/options.php/" method="post" 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?
} resúmenes
El desarrollo de plugins para WordPress comienza con la comprensión de su estructura básica, para luego profundizar en los API centrales y en los aspectos de seguridad, hasta finalmente construir una interfaz de usuario completa. Lo esencial es seguir los estándares de codificación y las mejores prácticas de WordPress, como el uso correcto de los “ganchos” (hooks), el manejo riguroso de la seguridad de los datos, y la utilización de los API de opciones y configuraciones incorporados en el sistema. Todo comienza con la creación de un simple archivo de comentarios en la cabecera del plugin; a continuación, se agregan acciones, filtros y códigos cortos, y finalmente se manejan la base de datos y la interfaz de administración. Cada paso se basa en el potente y estable framework de WordPress. Al aprender y practicar estos pasos de manera sistemática, podrás desarrollar plugins funcionales, seguros, fiables y fáciles de mantener, contribuyendo así al vasto ecosistema de WordPress a nivel mundial.
FAQ Preguntas más frecuentes
¿Qué conocimientos básicos se necesitan para desarrollar plugins para WordPress?
Para desarrollar plugins para WordPress es necesario dominar el lenguaje de programación PHP, ya que el código central de los plugins está escrito en este idioma. Además, se debe tener un conocimiento básico de HTML, CSS y JavaScript para crear las interfaces y las interacciones del lado del usuario. Lo más importante es estar familiarizado con los conceptos fundamentales de WordPress, como los ganchos (Actions y Filters), los bucles (The Loop), la estructura de los templates y la arquitectura de la base de datos de WordPress.
¿Cómo depuro mi plugin para WordPress?
En primer lugar, en wp-config.php Activa el modo de depuración de WordPress en el archivo. WP_DEBUG Los constantes se establecen en trueEsto mostrará los errores y advertencias de PHP en la pantalla. En segundo lugar, se puede utilizar… error_log() La función escribe información de depuración en el registro de errores del servidor. Además, instalar complementos de depuración profesionales, como Query Monitor, permite ver en tiempo real detalles sobre las consultas a la base de datos, la ejecución de los ganchos (hooks), la carga de scripts, etc., lo cual los convierte en herramientas indispensables en el proceso de desarrollo.
¿Cómo puedo hacer que mi plugin soporte múltiples idiomas (internacionalización)?
WordPress utiliza el marco tecnológico GNU gettext para implementar la internacionalización (i18n). Para comenzar, en el código de los plugins, se deben utilizar los marcadores especiales para todas las cadenas de texto que necesitan ser traducidas. () o _e() Envuelva las funciones de traducción en una capa de abstracción y proporcione soporte adicional para… () La función especifica el “Text Domain” que debe definirse en la parte inicial del plugin. A continuación, se utiliza una herramienta como Poedit para analizar el código fuente del plugin y generar lo necesario. .pot Archivos de plantilla, y sobre la base de estos, crear versiones en diferentes idiomas. .po Y después de la compilación. .mo El archivo debe ser colocado en el plugin correspondiente. /languages/ En el directorio. Finalmente, utilízalo. load_plugin_textdomain() Traducción de “Función de carga” (Function loading).
¿Cómo puedo enviar mi plugin al directorio oficial de plugins de WordPress?
Antes de enviar un plugin al directorio oficial, debes asegurarte de que cumpla completamente con las especificaciones y guías oficiales para el desarrollo de plugins. Necesitas tener una cuenta en WordPress.org y, a continuación, completar el formulario en la página de envío de plugins. El equipo de revisión verificará la seguridad de tu código, la licencia (que debe ser compatible con GPL), la calidad del código, la documentación y la compatibilidad del plugin. Una vez que sea aprobado, recibirás una dirección de repositorio SVN. Después de enviar el código a través de SVN, el plugin aparecerá en el directorio oficial. Este proceso puede llevar varias semanas y cuenta con estándares de revisión detallados.
¿Qué sigue, qué sigue?
Lectura ampliada y conocimientos prácticos
Los siguientes están relacionados con el tema de este artículo y son adecuados para una lectura más profunda. A menudo es mejor priorizar empezando por el artículo que más se acerque a su problema actual y ampliando gradualmente a los temas circundantes.
- ¿Por qué elegir WordPress como la plataforma preferida para crear sitios web?
- Guía de iniciación para WordPress: Crea tu primer sitio web profesional desde cero
- Solución integral para la creación de sitios web: Guía completa de implementación desde cero hasta la puesta en marcha.
- Prólogo: ¿Por qué elegir WordPress para el desarrollo?
- Guía definitiva para la creación de sitios web: El proceso completo para construir un sitio web profesional desde cero