PHP para WordPress: qué aprender para crear plugins y funciones
Aprender PHP para WordPress significa comprender el lenguaje y después aprender las APIs, hooks, funciones y reglas propias del ecosistema WordPress. Con esa base puedes dejar de depender únicamente de plugins prefabricados y comenzar a desarrollar funcionalidades, integraciones, automatizaciones y extensiones propias.
¿Qué PHP necesitas aprender para desarrollar en WordPress?
Primero necesitas dominar variables, arrays, condiciones, ciclos, funciones, tipos, errores y programación orientada a objetos.
Después debes aprender cómo WordPress utiliza PHP: hooks, funciones del core, plugins, themes, usuarios, permisos, nonces, sanitización, escape, consultas mediante $wpdb y REST API.
Si quieres trabajar con WooCommerce, tendrás que añadir además conocimientos sobre productos, pedidos, checkout, Mi Cuenta y hooks específicos de WooCommerce.
La mejor ruta es aprender PHP primero y WordPress después, no memorizar snippets sin entender el lenguaje.
Saber PHP amplía enormemente lo que puedes hacer con WordPress
Plugins
Crear funcionalidades propias sin modificar el núcleo de WordPress.
Hooks
Ejecutar código en momentos específicos mediante actions y filters.
WooCommerce
Personalizar productos, checkout, pedidos y Mi Cuenta.
Integraciones
Conectar WordPress con APIs, CRM, pagos y servicios externos.
Automatización
Crear procesos, tareas programadas y flujos personalizados.
Datos
Trabajar con posts, usuarios, metadatos, opciones y tablas propias.
Aprende PHP antes de intentar aprender WordPress únicamente mediante snippets
Uno de los errores más frecuentes al comenzar desarrollo WordPress es copiar fragmentos de código directamente en functions.php sin comprender qué hacen.
Eso puede funcionar para cambios pequeños, pero genera una base de conocimiento muy frágil.
Aprende variables
Necesitas representar identificadores, opciones, estados y datos.
Aprende arrays
WordPress utiliza arrays constantemente para argumentos, configuraciones y resultados.
Aprende funciones
Gran parte de la API de WordPress se consume mediante funciones.
Aprende POO
Plugins mayores suelen beneficiarse de clases, interfaces y una organización más estructurada.
Si todavía no controlas PHP, empieza por el lenguaje
Después WordPress será mucho más fácil de comprender.
Después del lenguaje tienes que aprender cómo WordPress utiliza PHP
Saber PHP no significa conocer automáticamente WordPress.
WordPress añade sus propias APIs, convenciones, ciclo de ejecución y estructuras.
Funciones del core
WordPress incluye funciones para trabajar con posts, usuarios, opciones, archivos, URLs, permisos y muchas otras áreas.
Hooks
Permiten ejecutar tu código sin modificar directamente el núcleo.
APIs
Plugins, settings, REST, cron, metadata y otras áreas poseen interfaces propias.
Esa es la diferencia entre simplemente conocer PHP y saber desarrollar para WordPress.
Actions permiten ejecutar código cuando WordPress alcanza un punto determinado
WordPress expone numerosos puntos durante su funcionamiento.
Puedes registrar una función para que se ejecute cuando ocurra determinado evento.
<?php
function ciborg_plugin_iniciado(): void
{
// Código personalizado.
}
add_action(
'init',
'ciborg_plugin_iniciado'
);
El hook determina cuándo se ejecuta
En este ejemplo, WordPress llamará a nuestra función cuando se dispare el hook init.
Otros hooks se ejecutan al guardar contenido, cargar administración, iniciar determinadas partes del sistema o completar operaciones.
Filters permiten recibir un valor, modificarlo y devolverlo
Mientras una action suele representar un punto donde ejecutas una tarea, un filter se utiliza frecuentemente para transformar información.
<?php
function ciborg_modificar_excerpt(
int $longitud
): int {
return 30;
}
add_filter(
'excerpt_length',
'ciborg_modificar_excerpt'
);
Debes devolver el valor
Ese detalle parece pequeño, pero muestra por qué entender funciones y retornos en PHP facilita enormemente trabajar con WordPress.
Action y filter no son simplemente dos nombres para lo mismo
| Action | Filter | |
|---|---|---|
| Objetivo habitual | Ejecutar una tarea | Transformar un valor |
| Retorno | Generalmente no es el objetivo principal | Normalmente debes devolver el valor |
| Ejemplo | Ejecutar código al guardar un post | Modificar un título antes de mostrarlo |
Comprender bien esta idea abre la puerta a gran parte del desarrollo WordPress.
No todo el código personalizado debería vivir en functions.php
El archivo functions.php pertenece al theme.
Eso significa que el código está relacionado con el theme activo.
Código visual asociado al theme
Puede tener sentido mantener determinadas personalizaciones relacionadas directamente con presentación dentro del theme.
Funcionalidad independiente del diseño
Si la funcionalidad debería seguir existiendo aunque cambies de theme, generalmente tiene más sentido colocarla dentro de un plugin.
Usuarios, integraciones, automatizaciones y reglas de negocio suelen pertenecer mejor a plugins o componentes independientes.
Un plugin puede comenzar con un único archivo PHP
Para comprender el concepto, no necesitas comenzar creando una arquitectura enorme.
<?php
/**
* Plugin Name: Ciborg Ejemplo
* Description: Plugin de aprendizaje.
* Version: 1.0.0
*/
if (!defined('ABSPATH')) {
exit;
}
function ciborg_mensaje_admin(): void
{
echo '<p>Plugin activo.</p>';
}
add_action(
'admin_notices',
'ciborg_mensaje_admin'
);
La cabecera identifica el plugin
WordPress puede reconocerlo y mostrarlo en la administración.
ABSPATH evita determinado acceso directo
Es una comprobación habitual dentro de archivos PHP de plugins.
Después puedes dividir el plugin
Cuando crezca, puedes separar administración, lógica, integraciones, datos y presentación.
Un plugin grande necesita más estructura que un único archivo
ciborg-plugin/
│
├── ciborg-plugin.php
├── includes/
│ ├── class-plugin.php
│ ├── class-admin.php
│ └── class-api.php
│
├── assets/
│ ├── css/
│ └── js/
│
└── templates/
└── panel.php
No existe una única estructura obligatoria.
El objetivo es separar responsabilidades para poder comprender, probar y mantener el proyecto.
La programación orientada a objetos se vuelve útil cuando el plugin crece
Un plugin de veinte líneas probablemente no necesita una arquitectura compleja.
Pero un sistema con administración, APIs, datos, emails, cron y WooCommerce puede beneficiarse de una organización más clara.
Clases
Agrupan estado y comportamiento relacionado.
Interfaces
Permiten establecer contratos entre componentes.
Composición
Permite combinar servicios pequeños en lugar de crear enormes clases que hacen todo.
WordPress no elimina la necesidad de aprender PHP correctamente
Funciones, tipos, POO, errores y arquitectura siguen importando.
El código WordPress debe tratar los datos externos como no confiables
Formularios, URLs, APIs y usuarios pueden entregar información inesperada.
Sanitiza la entrada
<?php
$nombre = isset($_POST['nombre'])
? sanitize_text_field(
wp_unslash($_POST['nombre'])
)
: '';
Escapa la salida
<p>
<?php echo esc_html($nombre); ?>
</p>
Validar, sanitizar y escapar no son exactamente lo mismo
Cada operación responde a un problema diferente.
Por eso, seguridad WordPress no debería reducirse a memorizar una única función.
Los nonces ayudan a verificar la intención de determinadas solicitudes
Supongamos que un usuario autenticado puede eliminar un registro.
No quieres que un sitio externo pueda construir una solicitud que ejecute esa operación sin intención del usuario.
Puedes generar un nonce
<?php
wp_nonce_field(
'ciborg_guardar_datos',
'ciborg_nonce'
);
Y verificarlo al procesar
<?php
check_admin_referer(
'ciborg_guardar_datos',
'ciborg_nonce'
);
También debes verificar si el usuario tiene permiso para realizar la operación.
current_user_can() permite comprobar capacidades del usuario
No deberías asumir que cualquier usuario autenticado puede ejecutar una acción administrativa.
<?php
if (!current_user_can('manage_options')) {
wp_die(
'No tienes permisos para realizar esta acción.'
);
}
Roles y capacidades no son exactamente lo mismo
Para programar, normalmente resulta más flexible comprobar capacidades en lugar de preguntar simplemente si alguien es “administrador”.
$wpdb permite trabajar con la base de datos cuando las APIs de más alto nivel no son suficientes
WordPress ya incluye funciones específicas para trabajar con posts, usuarios, opciones y metadata.
Siempre conviene comprobar primero si existe una API apropiada.
Cuando necesitas SQL personalizado aparece $wpdb
<?php
global $wpdb;
$tabla = $wpdb->prefix . 'ciborg_datos';
$resultado = $wpdb->get_row(
$wpdb->prepare(
"SELECT *
FROM {$tabla}
WHERE id = %d",
$id
)
);
Utiliza prepare para datos dinámicos
No insertes información del usuario directamente dentro de SQL.
No crees tablas propias por defecto
Antes evalúa si posts, post meta, user meta u otras estructuras existentes pueden resolver razonablemente el problema.
Las tablas propias tienen sentido cuando existe una necesidad real de modelo de datos o rendimiento.
No todo necesita una consulta SQL directa
Options API
Puede almacenar configuraciones de un plugin.
<?php
update_option(
'ciborg_mensaje',
'Hola WordPress'
);
$mensaje = get_option(
'ciborg_mensaje',
''
);
Metadata
Posts, usuarios y otros objetos pueden almacenar información adicional mediante APIs específicas.
Utilizar las APIs propias de WordPress también mejora compatibilidad con otras herramientas del ecosistema.
PHP puede convertir WordPress en backend para otras aplicaciones
WordPress incluye una REST API que permite exponer información mediante HTTP.
Además, un plugin puede registrar endpoints personalizados.
<?php
add_action(
'rest_api_init',
function () {
register_rest_route(
'ciborg/v1',
'/mensaje',
[
'methods' => 'GET',
'callback' => function () {
return [
'mensaje' => 'Hola desde WordPress'
];
},
'permission_callback' => '__return_true',
]
);
}
);
permission_callback merece atención especial
En un endpoint que modifica o expone información sensible, no deberías permitir acceso público automáticamente.
Debes definir correctamente autenticación y permisos.
WordPress puede comunicarse con apps, sistemas y servicios externos
La REST API amplía mucho las posibilidades de integración.
PHP puede procesar solicitudes asíncronas enviadas desde JavaScript
Una página no siempre necesita recargarse por completo para enviar o recuperar información.
JavaScript puede realizar una solicitud y PHP procesarla en el servidor.
WordPress dispone de mecanismos propios
Tradicionalmente se ha utilizado admin-ajax.php para determinados casos.
En muchas implementaciones modernas también puede resultar apropiado trabajar mediante REST API.
Aquí PHP y JavaScript comienzan a trabajar juntos
Esa combinación permite construir interfaces mucho más dinámicas.
PHP permite personalizar WooCommerce mucho más allá de sus opciones visuales
WooCommerce añade su propio ecosistema sobre WordPress.
Productos
Puedes reaccionar a cambios, añadir información o modificar determinados comportamientos.
Carrito
Reglas, descuentos, cantidades y validaciones.
Checkout
Campos, validaciones, métodos y lógica de compra.
Pedidos
Estados, metadata, automatizaciones e integraciones.
Mi Cuenta
Endpoints, información y áreas personalizadas para clientes.
Utiliza hooks, extensiones y mecanismos diseñados para personalizar sin perder cambios durante actualizaciones.
WordPress y PHP también pueden ejecutar tareas programadas
Algunos procesos no necesitan ocurrir inmediatamente cuando un usuario carga una página.
Actualizaciones
Sincronizar información con una API.
Emails
Enviar recordatorios o reportes.
Limpieza
Eliminar información temporal o antigua.
Procesamiento
Ejecutar trabajos que no necesitan bloquear una solicitud normal.
Comprender PHP, eventos y persistencia facilita muchísimo este tipo de automatización.
Composer también puede utilizarse dentro de proyectos WordPress
WordPress tiene sus propias convenciones, pero eso no significa que debas abandonar herramientas modernas del ecosistema PHP.
Dependencias
Un plugin puede utilizar paquetes externos cuando existe una buena razón.
Autoloading
Composer puede simplificar la carga de clases.
Namespaces
Ayudan a reducir conflictos entre nombres dentro de un ecosistema donde múltiples plugins se ejecutan juntos.
Puedes utilizar APIs WordPress junto con buenas prácticas generales del lenguaje.
Qué aprender para pasar de usuario WordPress a desarrollador WordPress
PHP
Variables, arrays, funciones, tipos y errores.
HTML y CSS
Estructura y presentación.
JavaScript
Interacciones y solicitudes desde navegador.
Hooks
Actions y filters.
Plugin API
Crear funcionalidad propia.
Seguridad
Nonces, capabilities, sanitización y escape.
Datos
Options, metadata y $wpdb.
REST API
Endpoints e integraciones.
WooCommerce
Productos, pedidos y checkout.
Arquitectura
Plugins mantenibles y escalables.
Proyectos para practicar PHP dentro de WordPress
Shortcode
Aprende hooks, funciones y salida HTML.
Página administrativa
Menús, permisos y formularios.
Plugin de ajustes
Options API, sanitización y nonces.
Custom Post Type
Contenido, metadata y consultas.
Endpoint REST
HTTP, JSON y permisos.
Extensión WooCommerce
Hooks, pedidos y lógica comercial.
La IA puede generar snippets de WordPress, pero entender PHP sigue siendo una ventaja
Puedes pedir a una IA que cree un shortcode, hook, endpoint o modificación de WooCommerce.
El problema aparece cuando no puedes evaluar lo generado.
Hooks incorrectos
Puede elegir un hook que funciona en otro momento del ciclo de WordPress.
Seguridad incompleta
Puede olvidar nonces, capabilities, sanitización o escape.
Consultas peligrosas
Una consulta puede funcionar y seguir siendo una mala implementación.
Arquitectura deficiente
Generar cientos de líneas dentro de functions.php no convierte el resultado en un buen plugin.
La IA reduce trabajo repetitivo, pero aumenta el valor de saber revisar
PHP, WordPress y criterio técnico siguen trabajando juntos.
Si tu objetivo profesional es WordPress, amplía la ruta más allá de PHP
¿Vale la pena aprender WordPress? — analiza si tiene sentido especializarte en la plataforma.
¿Se puede vivir de WordPress? — revisa posibles caminos profesionales y comerciales.
¿La IA reemplazará a los desarrolladores WordPress? — cómo puede cambiar el trabajo técnico.
¿WordPress va a desaparecer? — analiza la continuidad del ecosistema.
¿WordPress o programación desde cero? — compara ambas rutas de aprendizaje.
Qué evitar cuando aprendes PHP para WordPress
¿Cuándo puedes decir que ya programas WordPress con PHP?
Puedes explicar la diferencia entre action y filter.
Puedes crear un plugin pequeño desde cero.
Sabes cuándo usar functions.php y cuándo crear un plugin.
Comprendes nonces, sanitización, escape y capabilities.
Puedes utilizar Options API, metadata y $wpdb.
Puedes crear o consumir un endpoint REST.
Puedes investigar un hook en la documentación sin depender de un tutorial completo.
Puedes revisar código generado por IA y detectar problemas evidentes.
Aprender PHP para WordPress significa comprender dos capas: el lenguaje y la plataforma
Aprende primero PHP: variables, arrays, funciones, tipos, errores y POO.
Después aprende WordPress: hooks, APIs, plugins y arquitectura.
Incorpora seguridad desde el comienzo: nonces, capabilities, sanitización y escape.
Aprende a trabajar con Options API, metadata y $wpdb.
Después añade REST API, AJAX, cron e integraciones.
Si trabajas en ecommerce, continúa con WooCommerce.
El objetivo final no es memorizar snippets: es poder diseñar, desarrollar y mantener soluciones WordPress propias.
Continúa por PHP y WordPress
Preguntas sobre PHP para WordPress
Para administrar WordPress no es obligatorio, pero PHP resulta muy importante para crear plugins, trabajar con hooks, personalizar WooCommerce, desarrollar integraciones y modificar comportamiento en el servidor.
Aprende variables, arrays, condiciones, ciclos, funciones, parámetros, valores de retorno, tipos, manejo de errores y conceptos básicos de POO.
Una action suele utilizarse para ejecutar una tarea cuando WordPress alcanza determinado punto. Un filter recibe normalmente un valor, permite modificarlo y debe devolverlo.
Si la funcionalidad pertenece realmente al theme, functions.php puede ser adecuado. Si debería continuar funcionando aunque cambies de theme, normalmente tiene más sentido crear un plugin.
$wpdb es el objeto de acceso a base de datos proporcionado por WordPress. Puede utilizarse para realizar consultas personalizadas, aunque conviene preferir las APIs específicas de WordPress cuando ya resuelven el problema.
Sí. PHP permite trabajar con hooks y APIs de WooCommerce para personalizar productos, carrito, checkout, pedidos, Mi Cuenta e integraciones.
Sí. WordPress incluye una REST API y permite registrar endpoints personalizados mediante PHP. Debes prestar especial atención a autenticación, permisos y validación.
No. La IA puede generar snippets, hooks y plugins, pero comprender PHP permite revisar seguridad, permisos, consultas, arquitectura y compatibilidad con WordPress.
Deja de depender únicamente de snippets y empieza a comprender cómo funciona WordPress
Aprende PHP, domina hooks, crea tus primeros plugins, comprende seguridad, trabaja con datos y después avanza hacia REST API, WooCommerce e integraciones.
Empezar por PHP →