Tutorial WordPress: Encapsular estilos solo para una página usando body.page-id-XX

·

·

Introducción

En WordPress cada página suele llevar clases específicas en la etiqueta body generadas automáticamente por el sistema. Una de las más útiles es la clase page-id-XX (donde XX es el ID numérico de la página). Encapsular estilos usando esa clase permite aplicar CSS solo en una página concreta, evitando conflictos y minimizando el impacto en el resto del sitio. Este artículo explica en detalle cómo encontrar el ID, varias formas de cargar o escribir estilos específicos para una página y buenas prácticas para mantener el código limpio y eficiente.

¿Por qué encapsular estilos por página?

Cómo encontrar el ID de la página

  1. En el escritorio de WordPress, al editar la página mira la URL: el parámetro post= o post_id contendrá el número. Ejemplo: post=123.
  2. Desde el frontend, abre las herramientas de desarrollador (Inspector) y revisa las clases del elemento body verás page-id-123 entre otras.
  3. También puedes usar funciones PHP como get_the_ID() dentro de plantillas.

Métodos para encapsular estilos

Presento cuatro enfoques comunes, con ejemplos prácticos y recomendaciones sobre cuándo usar cada uno.

Método 1 — CSS directo con la clase page-id-XX

El método más sencillo: en tu archivo CSS global prefixa tus reglas con la clase de la página. Es inmediato y no requiere PHP.

/ archivo: style.css o css/global.css /
body.page-id-123 .entrada-hero {
    background: linear-gradient(90deg, #fff, #f2f2f2)
    padding: 40px 20px
}
body.page-id-123 .contenido-principal h2 {
    color: #2b6cb0
    margin-bottom: 1rem
}

Ventaja: simple. Inconveniente: el CSS se carga globalmente aunque solo se use en una página.

Método 2 — Cargar un archivo CSS solo para una página (functions.php)

Encola un stylesheet únicamente cuando la página coincide usando condicionales de WordPress. Recomendado para mantener el global limpio y mejorar rendimiento.


Dentro de /css/pagina-123.css, escribe reglas normales (puedes seguir usando la clase page-id-123 si quieres doble seguridad).

Método 3 — Añadir CSS inline desde PHP (cuando necesitas pocos estilos)

Útil para ajustes puntuales y rápidos. Evita abusar de este método para mucho CSS.


Nota: wp_add_inline_style requiere que el handle exista si no, puedes imprimir directamente con echo en la plantilla (menos recomendado).

Método 4 — Scoped dentro de la propia plantilla / bloque contenedor

Si controlas la plantilla de esa página puedes envolver el contenido con una clase única y escribir CSS que afecte solo a ese contenedor. Esto es especialmente útil cuando trabajas con bloques o shortcodes y quieres aislar estilos internos.

/ ejemplo de CSS para un contenedor específico /
.page-mi-landscape .hero { display:flex align-items:center gap:20px }
.page-mi-landscape .hero .imagen { flex:0 0 40% }

Y en la plantilla: asigna la clase page-mi-landscape al wrapper. Este enfoque evita depender de la clase del body y mejora legibilidad.

Consideraciones y trucos avanzados

Ejemplo completo paso a paso

Objetivo: cargar estilos solo para la página con ID 123 y aplicar cambios en el header y en un bloque hero.

1) Añadir en functions.php:


2) Crear el archivo assets/css/pagina-123.css con:

/ assets/css/pagina-123.css /
body.page-id-123 .site-header {
    background: rgba(255,255,255,0.95)
    border-bottom: 1px solid #e6e6e6
}
body.page-id-123 .hero {
    background-image: url(/wp-content/uploads/hero-landing.jpg)
    background-size: cover
    padding: 6rem 2rem
}
body.page-id-123 .hero h1 {
    color: #ffffff
    text-shadow: 0 2px 6px rgba(0,0,0,0.35)
}

Con esto lograrás que el CSS solo se cargue en la página 123 y que las reglas afecten solo a esa vista.

Buenas prácticas finales

  1. Prioriza encolar archivos por página antes que inundar el CSS global.
  2. Mantén un prefijo o nomenclatura clara para archivos y clases (por ejemplo pagina-123, page-123, etc.).
  3. Evita el abuso de !important úsalo solo como último recurso.
  4. Documenta en comentarios el motivo de estilos específicos para facilitar mantenimiento futuro.
  5. Prueba en distintas resoluciones y limpia cachés/optimización tras cambios.

Implementar estilos encapsulados con page-id-XX es una técnica sencilla pero poderosa para mantener un código CSS ordenado y evitar efectos secundarios no deseados en el resto del sitio. Utiliza el método que mejor se ajuste a tu flujo de trabajo y escala del proyecto: desde CSS rápido hasta encolado condicional con PHP.



Leave a Reply

Your email address will not be published. Required fields are marked *