Assets y UX en admin: carga selectiva y panel de ajustes más usable

Aprendes a encolar CSS/JS solo donde toca, mejorar rendimiento en WP-Admin y diseñar una experiencia de configuración más clara para equipos editoriales.

Muchos plugins cargan CSS y JS en todo el admin, aunque solo tengan una pantalla de ajustes. Eso degrada rendimiento y genera conflictos innecesarios.

En esta lección optimizarás la carga de assets para que WP Avisos Contextuales solo inyecte recursos en sus pantallas.

Además trabajarás la UX del panel: agrupación de campos, estados de guardado y feedback visual útil para reducir errores.

El resultado es un plugin más rápido, más limpio y más fácil de usar por perfiles no técnicos.

  • No encoles assets globalmente si solo se usan en una pantalla.
  • Usa `admin_enqueue_scripts` y comprueba el hook de la página actual (`$hook_suffix`) antes de cargar scripts o estilos.
  • Esto evita que tu plugin afecte otras secciones de WP-Admin y reduce tiempo de carga en paneles ajenos.
  • Caso real: un script global de plugin rompía editor de otro módulo por colisión de nombres; limitar carga al hook correcto eliminó el incidente.
  • Detecta pantalla objetivo.

Carga condicional en admin: menos peso, menos conflictos

No encoles assets globalmente si solo se usan en una pantalla.

Usa `admin_enqueue_scripts` y comprueba el hook de la página actual (`$hook_suffix`) antes de cargar scripts o estilos.

Esto evita que tu plugin afecte otras secciones de WP-Admin y reduce tiempo de carga en paneles ajenos.

Caso real: un script global de plugin rompía editor de otro módulo por colisión de nombres; limitar carga al hook correcto eliminó el incidente.

  • Detecta pantalla objetivo.
  • Encola solo ahí.
  • Versiona assets con constante del plugin.

Pasar datos a JS de forma segura

Evita hardcodear URLs y nonces en scripts.

Para acciones AJAX/admin, pasa datos con `wp_localize_script` o `wp_add_inline_script` controlado.

Incluye nonce, URL de endpoint y textos traducibles para mantener seguridad e internacionalización.

No expongas más datos de los necesarios en el objeto global.

UX del panel: claridad operativa

Un panel claro reduce soporte y acelera decisiones del equipo.

Agrupa ajustes por bloques lógicos: contenido del aviso, comportamiento, visibilidad y mantenimiento.

Usa etiquetas descriptivas, ayudas breves y estados de error/éxito visibles tras guardar.

Añade acciones de mantenimiento (por ejemplo, limpiar caché) con feedback inmediato para evitar dudas de operación.

Caso real: admin lento por assets globales

Rendimiento de backoffice también importa.

En una web con varios plugins, cada módulo cargaba scripts en todo WP-Admin y el tiempo de interacción se volvió incómodo para el equipo de contenidos.

La solución fue auditar hooks de encolado y limitar cada asset a su pantalla. El panel recuperó fluidez y desaparecieron conflictos de JavaScript.

Tu plugin debe comportarse como buen ciudadano del ecosistema WordPress.

WordPress Plugin
11

Assets y UX en admin: carga selectiva y panel de ajustes más usable

Aprendes a encolar CSS/JS solo donde toca, mejorar rendimiento en WP-Admin y diseñar una experiencia de configuración más clara para equipos editoriales.

Código del tema: admin_enqueue_scripts

📘 Teoría

Carga condicional en admin: menos peso, menos conflictos

No encoles assets globalmente si solo se usan en una pantalla.

Usa `admin_enqueue_scripts` y comprueba el hook de la página actual (`$hook_suffix`) antes de cargar scripts o estilos.

Esto evita que tu plugin afecte otras secciones de WP-Admin y reduce tiempo de carga en paneles ajenos.

Caso real: un script global de plugin rompía editor de otro módulo por colisión de nombres; limitar carga al hook correcto eliminó el incidente.

  • Detecta pantalla objetivo.
  • Encola solo ahí.
  • Versiona assets con constante del plugin.

Pasar datos a JS de forma segura

Evita hardcodear URLs y nonces en scripts.

1

Para acciones AJAX/admin, pasa datos con `wp_localize_script` o `wp_add_inline_script` controlado.

2

Incluye nonce, URL de endpoint y textos traducibles para mantener seguridad e internacionalización.

3

No expongas más datos de los necesarios en el objeto global.

Encolado condicional + datos para JS
add_action('admin_enqueue_scripts', function (string $hook): void {
    if ($hook !== 'toplevel_page_wpac-settings') {
        return;
    }

    wp_enqueue_style('wpac-admin', WPAC_URL . 'assets/css/admin.css', [], WPAC_VERSION);
    wp_enqueue_script('wpac-admin', WPAC_URL . 'assets/js/admin.js', ['jquery'], WPAC_VERSION, true);

    wp_localize_script('wpac-admin', 'WPAC_ADMIN', [
        'ajaxUrl' => admin_url('admin-ajax.php'),
        'nonce' => wp_create_nonce('wpac_admin_nonce'),
    ]);
});

UX del panel: claridad operativa

Un panel claro reduce soporte y acelera decisiones del equipo.

Agrupa ajustes por bloques lógicos: contenido del aviso, comportamiento, visibilidad y mantenimiento.

Usa etiquetas descriptivas, ayudas breves y estados de error/éxito visibles tras guardar.

Añade acciones de mantenimiento (por ejemplo, limpiar caché) con feedback inmediato para evitar dudas de operación.

1

Panel con ruido

Campos mezclados sin contexto.

  • Usuarios inseguros al guardar.
  • Configuraciones inconsistentes.
  • Más incidencias internas.
2

Panel usable

Estructura, ayuda y feedback claro.

  • Menos errores de uso.
  • Mayor autonomía editorial.
  • Menos tickets de soporte.

Caso real: admin lento por assets globales

Rendimiento de backoffice también importa.

1

En una web con varios plugins, cada módulo cargaba scripts en todo WP-Admin y el tiempo de interacción se volvió incómodo para el equipo de contenidos.

2

La solución fue auditar hooks de encolado y limitar cada asset a su pantalla. El panel recuperó fluidez y desaparecieron conflictos de JavaScript.

3

Tu plugin debe comportarse como buen ciudadano del ecosistema WordPress.

🧪 Aprende probando

Ejemplo Ejemplo guiado: encolado selectivo con `hook_suffix` Solo cargamos recursos en la página de ajustes del plugin y añadimos nonce para acciones JS.

🏁 Retos

Reto Reto real: evita carga en pantallas de edición Añade lógica para no encolar assets de ajustes en pantallas de `post.php` y `post-new.php`.

¿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 .