Tema clásico 08: Customizer avanzado con ajustes seguros

Diseña ajustes útiles en el Customizer para temas clásicos, aplicando validación, sanitización y salida limpia en frontend.

En temas clásicos, un Customizer bien diseñado reduce tickets y evita que cliente toque código para cambios simples de branding.

El error típico es añadir controles sin criterio, sin sanitización y sin una estrategia clara de aplicación en frontend.

La práctica profesional consiste en registrar pocos ajustes de alto impacto, validarlos correctamente y consumirlos con fallback seguro.

También debes mantener coherencia entre nombres de settings y su uso en CSS/plantillas para que el mantenimiento no se vuelva opaco.

  • Prioriza opciones de branding y layout base, no lógica compleja de negocio.
  • El Customizer funciona especialmente bien para color principal, logotipo, tipografía base o ancho de contenedor.
  • Evita meter reglas con demasiadas dependencias entre sí, porque la UX del panel se vuelve confusa y propensa a errores.
  • Diseña nombres claros para usuario no técnico y agrupa settings por secciones coherentes.
  • Pocos ajustes, alta utilidad.

Qué ajustes sí deben ir al Customizer

Prioriza opciones de branding y layout base, no lógica compleja de negocio.

El Customizer funciona especialmente bien para color principal, logotipo, tipografía base o ancho de contenedor.

Evita meter reglas con demasiadas dependencias entre sí, porque la UX del panel se vuelve confusa y propensa a errores.

Diseña nombres claros para usuario no técnico y agrupa settings por secciones coherentes.

  • Pocos ajustes, alta utilidad.
  • Nombres legibles para cliente final.
  • Controles agrupados por objetivo visual.
  • Nada de lógica de negocio en Customizer.

Registrar setting y control con sanitización

Todo setting debe validarse antes de guardarse para no romper estilos ni introducir valores inválidos.

Aplicar valores en frontend con fallback

Guardar el valor no basta: hay que consumirlo de forma segura en la salida del tema.

Recupera el valor con get_theme_mod y define valor por defecto para no dejar el sitio sin estilos si falta configuración.

Escapa siempre cuando inyectes valores en HTML o CSS dinámico.

Si varios componentes comparten el ajuste, usa variable CSS global para evitar duplicar reglas.

WordPress Themes Pro
18

Tema clásico 08: Customizer avanzado con ajustes seguros

Diseña ajustes útiles en el Customizer para temas clásicos, aplicando validación, sanitización y salida limpia en frontend.

Código del tema: WP_Customize_Color_Control

📘 Teoría

Qué ajustes sí deben ir al Customizer

Prioriza opciones de branding y layout base, no lógica compleja de negocio.

El Customizer funciona especialmente bien para color principal, logotipo, tipografía base o ancho de contenedor.

Evita meter reglas con demasiadas dependencias entre sí, porque la UX del panel se vuelve confusa y propensa a errores.

Diseña nombres claros para usuario no técnico y agrupa settings por secciones coherentes.

  • Pocos ajustes, alta utilidad.
  • Nombres legibles para cliente final.
  • Controles agrupados por objetivo visual.
  • Nada de lógica de negocio en Customizer.

Registrar setting y control con sanitización

Todo setting debe validarse antes de guardarse para no romper estilos ni introducir valores inválidos.

Color principal con WP_Customize_Color_Control
<?php
add_action('customize_register', function ($wp_customize) {
  $wp_customize->add_section('theme_brand', [
    'title' => __('Brand', 'mi-tema-clasico'),
    'priority' => 30,
  ]);

  $wp_customize->add_setting('theme_primary_color', [
    'default' => '#2563eb',
    'sanitize_callback' => 'sanitize_hex_color',
    'transport' => 'refresh',
  ]);

  $wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'theme_primary_color', [
    'label' => __('Color principal', 'mi-tema-clasico'),
    'section' => 'theme_brand',
    'settings' => 'theme_primary_color',
  ]));
});

Aplicar valores en frontend con fallback

Guardar el valor no basta: hay que consumirlo de forma segura en la salida del tema.

1

Recupera el valor con get_theme_mod y define valor por defecto para no dejar el sitio sin estilos si falta configuración.

2

Escapa siempre cuando inyectes valores en HTML o CSS dinámico.

3

Si varios componentes comparten el ajuste, usa variable CSS global para evitar duplicar reglas.

Inyectar variable CSS en head
<?php
add_action('wp_head', function () {
  $color = get_theme_mod('theme_primary_color', '#2563eb');
  $safe = sanitize_hex_color($color) ?: '#2563eb';

  echo '<style>:root{--theme-primary:' . esc_attr($safe) . ';}</style>';
});

🧪 Aprende probando

Ejemplo Ejemplo: usar variable de color en componentes Aplica la variable global del tema en títulos y botones para mantener consistencia visual.

🏁 Retos

Reto Reto: proteger un setting del Customizer Completa la configuración del setting para validar un color hexadecimal.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre WordPress Themes Pro.

Test de WordPress Themes Pro

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .