Preparación del entorno de desarrollo para plugins de WordPress
Antes de comenzar a escribir código, es esencial disponer de un entorno de desarrollo estable e aislado. Esto no solo protegerá tu sitio web en producción, sino que también te permitirá probar y depurar el código con total libertad. La forma más recomendable es utilizar un entorno de desarrollo local, como Local by Flywheel, XAMPP o MAMP. Estas herramientas te permiten instalar de forma sencilla en tu ordenador las herramientas necesarias (PHP, MySQL y el servidor web) para WordPress.
A continuación, necesitará activar el modo de depuración en su instalación local de WordPress. Esto le ayudará a detectar errores rápidamente durante el proceso de desarrollo. Abra el directorio raíz de WordPress. wp-config.php En el archivo, encuentre o añada las siguientes definiciones de constantes:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false ); Después de hacer este ajuste, todos los mensajes de error y advertencias serán registrados en… /wp-content/debug.log El archivo se almacena en el sistema, pero no se muestra directamente en la página, lo que evita afectar a los usuarios que interactúan con el sitio web desde el lado del cliente ( frontend).
Lecturas recomendadas Guía de introducción al desarrollo de complementos de WordPress: crea tu primer complemento personalizado desde cero.。
Por último, necesitarás un editor de código. Visual Studio Code, PhpStorm o Sublime Text son opciones excelentes, ya que ofrecen una excelente resaltación del lenguaje y sugerencias de código para el desarrollo en PHP y WordPress. Asegúrate de que tu editor permita acceder fácilmente a los archivos de tu proyecto en el servidor local.
Crea tu primer complemento
Un plugin de WordPress es, en esencia, uno o varios archivos ubicados en wp-content/plugins Los archivos PHP que se encuentran en el directorio. Cada plugin debe tener un archivo principal, y la parte inicial de ese archivo debe contener las anotaciones de información estándar del plugin, para que WordPress pueda reconocerlo.
Escribir la información de cabecera del plugin
En tu… wp-content/plugins En el directorio, cree una nueva carpeta, por ejemplo… my-first-pluginDentro de esa carpeta, cree el archivo principal. my-first-plugin.phpEl inicio del archivo debe contener una nota con el siguiente formato:
<?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
*/ El campo “Nombre del Plugin” es obligatorio en esta nota; todos los demás campos son optativos. WordPress leerá esta información y la mostrará en la página de administración de plugins del backend.
Implementar una función sencilla.
Ahora, vamos a agregar la primera función real a este plugin: agregar automáticamente un texto personalizado al final del contenido del artículo. Vamos a utilizar… the_content Este es un gancho de filtro (Filter Hook).
Lecturas recomendadas Introducción al desarrollo de plugins de WordPress: experiencia práctica y compartición de técnicas básicas。
Debajo de los comentarios en la parte superior, añada el siguiente código:
function myfp_add_text_to_content( $content ) {
if ( is_single() && in_the_loop() && is_main_query() ) {
$custom_text = '<p><em>Gracias por leer este artículo, presentado por “Mi primer complemento”.</em></p>'function myplugin_add_text_to_content( $content ) {
if ( is_singular( 'post' ) ) {
$custom_text = get_the_custom_text( 'custom_text_for_post' );
if ( ! empty( $custom_text ) ) {
$content .= "\n';
$content .= $custom_text;
}
}
return $content;
}
add_filter( 'the_content', 'myplugin_add_text_to_content' ); 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 revisa un artículo en el sitio web; notarás que el texto que hemos definido ha sido añadido al final del artículo. En este código…myfp_add_text_to_content Es una función que hemos definido nosotros.add_filter() Montarlo en… the_content En el gancho. Los criterios de evaluación dentro de la función aseguran que este texto solo se muestre en el ciclo principal de la página principal del artículo, en la interfaz frontal del sitio web.
Comprender los mecanismos centrales de los plugins de WordPress
La piedra angular de la potencia y flexibilidad de los plugins de WordPress es su mecanismo de ganchos (Hooks). Los ganchos te permiten insertar tu propio código en puntos específicos del código central de WordPress, lo que te permite modificar o mejorar su comportamiento predeterminado. Los ganchos se dividen principalmente en dos tipos: ganchos de acción (Action Hooks) y ganchos de filtro (Filter Hooks).
Acción hooks y filtro hooks
Los ganchos de acción (Action Hooks) te permiten ejecutar código personalizado cuando ocurre un evento específico, como después de publicar un artículo o al cargar una página de administración. No es necesario que devuelvan un valor. add_action() Se utiliza una función para realizar la montación (es decir, para aplicar ciertas configuraciones o acciones). Por ejemplo, se puede ejecutar una operación cuando un complemento (plugin) se activa.
function myfp_plugin_activation_task() {
// 创建数据库表、初始化选项等
update_option( 'myfp_plugin_installed', '2026-01-01' );
}
register_activation_hook( __FILE__, 'myfp_plugin_activation_task' ); Aquí se ha utilizado… register_activation_hookSe trata de un gancho de acción especial diseñado específicamente para la activación de plugins.
Los “ganchos de filtro” (Filter hooks) te permiten modificar los datos que se le envían. Estos requieren que una función reciba un valor y que, a su vez, devuelva un valor modificado. El ejemplo anterior en el que modificábamos el contenido de un artículo es un ejemplo típico de uso de un filtro. Otro ejemplo sería el caso en el que modificamos la longitud de un extracto del artículo.
Lecturas recomendadas Dominar el desarrollo de plugins de WordPress: una guía práctica completa de principio a fin.。
function myfp_custom_excerpt_length( $length ) {
return 20; // 将摘录长度改为20个单词
}
add_filter( 'excerpt_length', 'myfp_custom_excerpt_length' ); Usar códigos cortos para agregar contenido dinámico.
Además de los ganchos (hooks), los códigos cortos (shortcodes) son otra herramienta poderosa para la interacción entre los plugins y el contenido. Permite a los usuarios insertar una etiqueta sencilla en un artículo o página para realizar ciertas acciones o modificar el diseño de la página de manera automática. [my_shortcode]Se utiliza para invocar el contenido complejo generado por el plugin.
Crear un código corto es muy sencillo; simplemente utilízalo. add_shortcode() Funciones. Por ejemplo, aquí hay un breve código para crear una función que muestre la hora actual:
function myfp_current_time_shortcode( $atts ) {
$atts = shortcode_atts( array(
'format' => 'Y-m-d H:i:s',
), $atts, 'current_time' );
return date( $atts['format'] );
}
add_shortcode( 'current_time', 'myfp_current_time_shortcode' ); Los usuarios pueden ingresar texto en el editor. [current_time format="H:i"] Muestre solo las horas y los minutos.
Agregar una página de administración para el plugin.
Muchos plugins requieren la opción de configuración, lo que generalmente se logra a través de las páginas del menú de administración en la interfaz posterior de WordPress. WordPress proporciona una serie de funciones para agregar elementos de menú principales o secundarios.
Crear la página de configuración del plugin
Vamos a agregar una página de configuración sencilla para el plugin, que permitirá gestionar el texto que se ha añadido anteriormente al final de los artículos. Para comenzar, utilicemos… add_menu_page() o add_options_page() Se utiliza una función para registrar las páginas. Por lo general, los plugins sencillos añaden las páginas al submenú de “Ajustes”.
Agregue el siguiente código al archivo principal del complemento:
function myfp_add_admin_menu() {
add_options_page(
'我的第一个插件设置', // 页面标题
'我的插件设置', // 菜单标题
'manage_options', // 所需权限
'myfp-settings', // 菜单slug
'myfp_settings_page_html' // 用于输出页面内容的回调函数
);
}
add_action( 'admin_menu', 'myfp_add_admin_menu' ); Este código le indica a WordPress que, al generar el menú de administración del sitio, debe…admin_menu Acción), ejecución myfp_add_admin_menu Función para agregar una página.
Crear un formulario para la página de configuración.
A continuación, necesitamos definir myfp_settings_page_html La función se encarga de generar el contenido HTML de la página y de procesar el salvado de los formularios. Para almacenar las configuraciones de manera segura, utilizamos las funcionalidades de WordPress. options API (Application Programming Interface).
function myfp_settings_page_html() {
// 检查用户权限
if ( !current_user_can( 'manage_options' ) ) {
return;
}
// 处理表单提交
if ( isset( $_POST['myfp_footer_text'] ) ) {
update_option( 'myfp_footer_text', sanitize_textarea_field( $_POST['myfp_footer_text'] ) );
echo '<div class="notice notice-success"><p>¡Los ajustes se han guardado!</p></div>';
}
// 获取现有值
$current_text = get_option( 'myfp_footer_text', '感谢阅读本文,由“我的第一个插件”为您呈现。' );
?>
<div class="wrap">
<h1>La configuración de mi primer complemento</h1>
<form method="post" action="">
<?php wp_nonce_field( 'myfp_settings_action', 'myfp_settings_nonce' ); ?>
<table class="form-table">
<tr>
<th scope="row"><label for="footer_text">Texto del pie de página del artículo</label></th>
<td>
<textarea name="myfp_footer_text" id="footer_text" rows="4" cols="50" class="large-text"><?php echo esc_textarea( $current_text ); ?></textarea>
<p class="description">Este texto se mostrará al final de cada artículo.</p>
</td>
</tr>
</table>
<?php submit_button(); ?>
<input type="hidden" name="trp-form-language" value="es"/></form>
</div>
¿php?
} Finalmente, recuerde modificar la función que filtraba el contenido de los artículos anteriormente, para que funcione correctamente con las nuevas opciones. myfp_footer_text Se lee el texto desde un archivo en lugar de utilizar cadenas de texto hardcoded (es decir, fijas en el código). De esta manera, se completa una página de configuración del backend que cuenta con funciones básicas de administración.
resúmenes
Siguiendo los pasos descritos en este artículo, has creado un plugin para WordPress completamente funcional desde cero. Has aprendido a configurar un entorno de desarrollo, a crear la estructura básica de un plugin, a utilizar los mecanismos de ganchos (acciones y filtros) del núcleo de WordPress para expandir sus funcionalidades, a implementar códigos cortos (shortcodes) y a desarrollar interfaces de administración en el backend. El corazón del desarrollo de plugins reside en la comprensión de los ganchos y el modelo de programación basado en eventos, lo que te permite personalizar en profundidad el comportamiento de WordPress sin tener que modificar su código fuente. Recuerda que una buena estructura del código, un manejo seguro de los datos de entrada/salida y el soporte a la internacionalización son fundamentales para desarrollar plugins de alta calidad. A continuación, puedes intentar agregar más funcionalidades al plugin, como tipos de artículos personalizados, herramientas adicionales o puntos de conexión (APIs) REST, explorando así las infinitas posibilidades del ecosistema de WordPress.
FAQ Preguntas más frecuentes
¿Debe tener un plugin solo un archivo PHP?
No necesariamente. Un plugin puede estar compuesto por un único archivo PHP; sin embargo, para plugins más complejos, se recomienda una estructura modular. Es posible dividir las diferentes funciones en clases o archivos separados, y que el archivo principal se encargue únicamente de incluir estos archivos e inicializar el plugin. Esto facilita el mantenimiento y la organización del código. Por ejemplo, se puede crear… includes/ El directorio alberga clases relacionadas con funciones.admin/ El directorio contiene el código relacionado con el backend.public/ El directorio alberga la lógica del lado front-end.
¿Cómo manejar de manera segura los datos ingresados por los usuarios en los plugins?
Al procesar la entrada del usuario (como datos de formularios o parámetros de URL), es esencial realizar validaciones, limpiezas y operaciones de escape. En el caso de los datos que se almacenan en la base de datos, se debe utilizar un enfoque similar. sanitize_text_field()、sanitize_textarea_field()、intval() Limpieze las funciones correspondientes. Al generar la salida de datos para una página HTML, utilice… esc_html()、esc_attr()、esc_url() o wp_kses() Se realiza la escapación de los caracteres para prevenir ataques de tipo Cross-Site Scripting (XSS).
¿Cómo depurar el código durante el desarrollo de plugins?
Además de activar… WP_DEBUG Además, también puedes utilizar… error_log() La función registra la información personalizada en el registro de depuración. Esto es útil para verificar los valores de las variables.var_dump() o print_r() En combinación con die() Es un método rápido, pero no muy preciso. Se recomienda utilizar las funciones integradas de WordPress. wp_die() Y wp_send_json()(Para el depurado de AJAX). Además, el uso de plugins de depurado profesionales como Query Monitor permite ver de manera más intuitiva información en tiempo real sobre consultas a la base de datos, hooks, scripts, etc.
¿Cómo puedo hacer que mi plugin sea compatible con múltiples idiomas?
Para que un plugin soporte la internacionalización (i18n), es necesario utilizar las funciones de traducción de WordPress. En primer lugar, se debe configurar correctamente esto en las notas del encabezado del plugin. Text Domain(Como ‘my-first-plugin’). En el código, se deben utilizar este formato para todas las cadenas de texto dirigidas al usuario. () o _e() Se envuelve una función, por ejemplo… ( ‘Hello World’, ‘my-first-plugin’ )Luego, utiliza herramientas como Poedit para generar el contenido necesario. .pot Los archivos de plantilla, a partir de los cuales los traductores pueden crear versiones en diferentes idiomas. .po Y .mo Los archivos se descargan y se almacenan en la carpeta del complemento. languages/ En la carpeta.
¿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.
- Guía para el desarrollo de plugins para WordPress: Crea tu primer plugin personalizado desde cero
- Convertirse en desarrollador de plugins para WordPress: Una guía completa desde cero
- Guía completa para el desarrollo de plugins para WordPress: Desde los principios hasta la maestría para crear extensiones profesionales
- Desarrollo de plugins para WordPress: Desde los principios hasta la maestría: Crea tu primer plugin personalizado
- De cero a uno: Una guía completa para desarrollar tu primer plugin para WordPress paso a paso