Tema clásico 03: enqueue de assets sin conflictos

Implementa una carga de CSS/JS sólida en temas clásicos con dependencias, versionado y activación por contexto.

En un tema clásico, muchos bugs de frontend no nacen en el CSS o en el JavaScript, sino en cómo los cargas.

Cuando encolas sin orden ni dependencias, aparecen scripts duplicados, errores intermitentes y conflictos con plugins.

La solución profesional es usar siempre el sistema de enqueue, declarar dependencias reales y versionar los archivos correctamente.

También debes evitar carga global innecesaria: si un script solo sirve para una plantilla, no debe viajar en todo el sitio.

  • enqueue no es opcional: es la capa que coordina assets entre núcleo, plugins y tema.
  • Cada archivo debe tener un handle único y descriptivo para facilitar depuración y mantenimiento.
  • Declara dependencias explícitas en scripts para que WordPress gestione el orden correcto sin hacks manuales.
  • Versiona assets con filemtime en desarrollo para invalidar caché al instante y usa versión fija en release.
  • Nunca hardcodees etiquetas <script> en header.php.

Principios de carga en tema clásico

enqueue no es opcional: es la capa que coordina assets entre núcleo, plugins y tema.

Cada archivo debe tener un handle único y descriptivo para facilitar depuración y mantenimiento.

Declara dependencias explícitas en scripts para que WordPress gestione el orden correcto sin hacks manuales.

Versiona assets con filemtime en desarrollo para invalidar caché al instante y usa versión fija en release.

  • Nunca hardcodees etiquetas <script> en header.php.
  • Un módulo, un handle, una responsabilidad.
  • Scripts no críticos en footer cuando aplique.
  • Nombra recursos con convención estable del tema.

Implementación base en functions.php

Carga CSS principal y JS de navegación con versión coherente y sin duplicados.

Carga contextual por plantilla

No cargues módulos avanzados en páginas que no los usan.

Si una funcionalidad solo existe en una landing o en un CPT, actívala con is_page_template o is_singular.

Esto reduce transferencias innecesarias y mejora métricas de render en vistas simples.

Mantén un inventario de assets por feature para que el equipo sepa dónde se activa cada archivo.

WordPress Themes Pro
13

Tema clásico 03: enqueue de assets sin conflictos

Implementa una carga de CSS/JS sólida en temas clásicos con dependencias, versionado y activación por contexto.

Código del tema: wp_enqueue_style

📘 Teoría

Principios de carga en tema clásico

enqueue no es opcional: es la capa que coordina assets entre núcleo, plugins y tema.

Cada archivo debe tener un handle único y descriptivo para facilitar depuración y mantenimiento.

Declara dependencias explícitas en scripts para que WordPress gestione el orden correcto sin hacks manuales.

Versiona assets con filemtime en desarrollo para invalidar caché al instante y usa versión fija en release.

  • Nunca hardcodees etiquetas en header.php.
  • Un módulo, un handle, una responsabilidad.
  • Scripts no críticos en footer cuando aplique.
  • Nombra recursos con convención estable del tema.

Implementación base en functions.php

Carga CSS principal y JS de navegación con versión coherente y sin duplicados.

Enqueue recomendado
<?php
add_action('wp_enqueue_scripts', function () {
  $theme_version = wp_get_theme()->get('Version');

  $css_path = get_theme_file_path('/assets/css/main.css');
  $css_ver = file_exists($css_path) ? (string) filemtime($css_path) : $theme_version;

  wp_enqueue_style(
    'mi-tema-main',
    get_theme_file_uri('/assets/css/main.css'),
    [],
    $css_ver
  );

  wp_enqueue_script(
    'mi-tema-navigation',
    get_theme_file_uri('/assets/js/navigation.js'),
    [],
    $theme_version,
    true
  );
});

Carga contextual por plantilla

No cargues módulos avanzados en páginas que no los usan.

1

Si una funcionalidad solo existe en una landing o en un CPT, actívala con is_page_template o is_singular.

2

Esto reduce transferencias innecesarias y mejora métricas de render en vistas simples.

3

Mantén un inventario de assets por feature para que el equipo sepa dónde se activa cada archivo.

Script exclusivo para plantilla de contacto
<?php
add_action('wp_enqueue_scripts', function () {
  if (!is_page_template('templates/contacto.php')) {
    return;
  }

  wp_enqueue_script(
    'mi-tema-contacto',
    get_theme_file_uri('/assets/js/contacto.js'),
    [],
    '1.0.0',
    true
  );
});

🧪 Aprende probando

Ejemplo Ejemplo: pasar datos seguros a JS Usa wp_localize_script para enviar ajaxUrl y nonce sin hardcodear rutas en JavaScript.

🏁 Retos

Reto Reto: limitar un script a single de producto Completa la condición para no cargar el script en todo el sitio.

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