Hemos trabajado en muchos sitios de WordPress a lo largo de los años, y un truco de personalización al que siempre volvemos es agregar el slug de la página a la clase body. Es algo muy simple, pero marca una gran diferencia cuando se trata de flexibilidad de diseño.
Aquí es a lo que nos referimos: Probablemente te ha pasado antes: quieres estilizar solo una página de manera diferente al resto de tu sitio. Sin el slug de la página en tu clase body, terminas lidiando con selectores CSS complejos o creando hojas de estilo separadas.
Agregar un slug de página en el tema de WordPress te permite hacer todas las personalizaciones que desees sin complicaciones. Puedes cambiar fácilmente los colores, fuentes y otros elementos en páginas individuales sin afectar el resto de tu sitio.
En este artículo, te mostraremos cómo agregar un slug de página en la clase body de tus temas de WordPress. Hemos utilizado este método en todo, desde sitios empresariales simples hasta tiendas de comercio electrónico complejas.

¿Por qué agregar un slug de página en la clase body de tu tema?
Si buscas personalizar páginas específicas de tu sitio y quieres identificar correctamente la página, entonces agregar un slug de página en la clase body de tu tema es realmente útil.
Por defecto, tu sitio de WordPress solo mostrará las clases de ID de publicación, lo que puede ser complicado a la hora de reconocer la página correcta. Un slug de página muestra la URL de tu publicación de blog, lo que facilita la personalización de la página.
Además de eso, puedes realizar diferentes personalizaciones en tus páginas usando una clase de cuerpo de slug de página. Por ejemplo, puedes cambiar la fuente y los colores de una publicación en particular o resaltar un botón de llamada a la acción en una página de destino específica.
Dicho esto, veamos cómo puedes agregar el slug de la página a la clase de cuerpo de tu tema de WordPress.
Agregar un slug de página en tu tema de WordPress
Para ayudarte a agregar la URL de tu página a la clase de cuerpo de tu tema de WordPress, puedes ingresar el siguiente código en el archivo functions.php de tu tema.
function add_slug_body_class( $classes ) {
global $post;
if ( isset( $post ) ) {
$classes[] = $post->post_type . '-' . $post->post_name;
}
return $classes;
}
add_filter( 'body_class', 'add_slug_body_class' );
Puedes acceder a los archivos functions.php de tu tema yendo al Editor de Temas de WordPress (Editor de Código). Sin embargo, editar directamente los archivos del tema es muy arriesgado.
Esto se debe a que cualquier error al agregar el código puede romper tu sitio y bloquearte el acceso a tu panel de administración de WordPress.
Una forma mucho más sencilla de agregar el código a la clase de cuerpo de tu tema es usando un plugin de WordPress como WPCode. Lo usamos en varios sitios, consulta nuestra reseña completa de WPCode para obtener más información.

Con WPCode, puedes agregar fácilmente código a tu sitio en minutos y sin errores. Además, también asegura que tu código no se elimine si actualizas o cambias tu tema en el futuro.
También viene con una biblioteca de fragmentos de código creados por expertos que puedes instalar con un solo clic. Por lo tanto, no necesitas ninguna habilidad de codificación para realizar personalizaciones avanzadas de WordPress.
De hecho, agregar un slug de página a la clase del cuerpo está disponible como un fragmento prefabricado en la biblioteca de WPCode. Este es el método más fácil de seguir.
Primero, necesitarás instalar y activar el plugin gratuito WPCode en tu sitio. Para obtener instrucciones paso a paso, puedes consultar nuestra guía sobre cómo instalar un plugin de WordPress.
Una vez que el plugin esté activado, se agregará un nuevo elemento de menú llamado 'Fragmentos de código' a tu barra de administración de WordPress. Al hacer clic en él, accederás a la página donde administrarás todos tus fragmentos de código.
Para agregar tu primer fragmento de código, haz clic en el botón ‘Agregar nuevo’.

Esto te llevará a la página ‘Agregar fragmento’, donde puedes elegir un fragmento de código de la biblioteca predeterminada.
Simplemente busca el fragmento ‘Agregar la clase de página al cuerpo’ y, cuando lo encuentres, haz clic en el botón ‘Usar fragmento’.

Ahora, WPCode agregará automáticamente el código y establecerá el método de inserción correcto.

Todo lo que tienes que hacer es cambiar el interruptor de ‘Inactivo’ a ‘Activo’. Por último, haz clic en el botón ‘Actualizar’ en la parte superior de la página.

Ahora empezarás a ver una nueva clase de cuerpo generada de esta manera: page-{slug}. Usa esa clase para anular tus estilos predeterminados y personalizar elementos para páginas específicas.
Por ejemplo, digamos que querías estilizar tus widgets de barra lateral, pero solo en una página que tenga el slug “educación”. En ese caso, podrías agregar CSS de esta manera:
#sidebar .widgets{background: #fff; color: #000;}
.page-education #sidebar .widgets{background: #000; color: #fff;}
Para más detalles, puedes ver nuestra guía sobre cómo agregar CSS personalizado a WordPress.
Agregar el código personalizado manualmente
Si prefieres agregar el código personalizado de arriba manualmente, aquí te explicamos cómo hacerlo.
Primero, navega a la página Fragmentos de código » Agregar fragmento desde tu panel de WordPress.
Desde allí, ve a la opción ‘Agregar tu código personalizado (Nuevo fragmento)’ y haz clic en el botón ‘+ Agregar fragmento personalizado’.

Luego, necesitas seleccionar un tipo de código de la lista de opciones que aparecen en la pantalla. Para este tutorial, elige ‘Fragmento de PHP’.

Ahora, dale un título a tu fragmento de código, el cual es solo para tu referencia y puede ser cualquier cosa que te ayude a identificar el código.
Después de eso, simplemente copia y pega el código de arriba en el cuadro ‘Vista previa del código’.

A continuación, desplázate hacia abajo hasta la sección ‘Inserción’. Aquí, puedes elegir el método ‘Inserción automática’ para insertar y ejecutar automáticamente el código en una ubicación específica de WordPress, como el panel de administración, el frontend y más.
Si no estás seguro, mantén la opción predeterminada ‘Ejecutar en todas partes’.

O bien, puedes elegir el método ‘Shortcode’. Con este método, el fragmento no se inserta automáticamente. Obtendrás un shortcode que puedes insertar manualmente en cualquier lugar de tu sitio.
Cuando estés listo, cambia el interruptor de ‘Inactivo’ a ‘Activo’ y haz clic en el botón ‘Guardar fragmento’ en la esquina superior derecha.

Para más detalles, puedes consultar nuestra guía sobre cómo agregar código personalizado en WordPress.
Esperamos que este artículo te haya ayudado a aprender cómo agregar un slug de página en la clase del cuerpo de tu tema de WordPress. También puedes consultar nuestra guía sobre la clase del cuerpo de WordPress y cómo elegir el mejor software de diseño.
Si te gustó este artículo, suscríbete a nuestro canal de YouTube para obtener tutoriales en video de WordPress. También puedes encontrarnos en Twitter y Facebook.

David
¡Gracias! Simple y efectivo.
Soporte de WPBeginner
¡De nada!
Administrador
jeba
Gracias. Está funcionando
Soporte de WPBeginner
Glad our method worked for you
Administrador
Bradley
¡Muchas gracias! Literalmente copié y pegué este código en mi functions.php. Funcionó perfectamente.
Alds
¿Qué tal usar la variable global $wp_query en lugar de $post? He notado que $post se sobrescribe si has ejecutado una wp_query antes de que se ejecute el archivo functions.php.
Pete
Esto necesita una declaración condicional para aplicarlo solo a single.php, no a archive.php, etc.
Chris
¿Cómo puedo poner el ID de la publicación en la clase del cuerpo?
Aaron McGraw
¡Genial! Justo lo que necesitaba. ¡Muchas gracias!
Daneil
Gracias por publicarlo, es un pequeño fragmento de código, pero útil y te permite escribir archivos CSS más amigables para humanos, en lugar de clases basadas en ID. ¡Saludos!
Austin
Thank you so much for this! I found out the hard way that page-id can change given different circumstances. This allows me to style individual pages without as much worry.
Kevin
Muchas gracias por esto. Tuve algunos problemas al principio debido a la posición del código en mi CSS, pero una vez que lo moví al final funcionó muy bien. Solo desearía que esto fuera estándar para WP como otros han dicho y que hubiera sabido de esto hace mucho tiempo.
Tom McGinnis
Este código funciona bastante bien. Sin embargo, me di cuenta de que los resultados de búsqueda terminaban con la clase del cuerpo incluyendo el slug del primer elemento listado. A veces, el primer elemento tenía estilos que anulaban los estilos de la página de resultados de búsqueda. ¡Extraño, ¿verdad!?
Descubrí que si pones !is_search() dentro de la declaración if, este problema se elimina. Si alguien más se encuentra con este problema, la solución es simple.
¿Usaste &&?
Cuando pones !is_search() – ¿Cómo escribiste el código?
Murhaf Sousli
Esto es exactamente lo que estoy buscando, pegué el código en function.php, pero desafortunadamente ¡no se agregó ninguna clase al cuerpo! ¿Alguna idea?
Asaf
Tengo exactamente el mismo problema
Ahir Hemant
Hola, me está funcionando. Envíame tu enlace para que pueda revisar.
Gracias
Personal de WPBeginner
Viene incluido con WordPress. Sin embargo, el front-end de tu sitio es manejado por los temas, por eso se deja a los autores de temas decidir si usarlo o no.
MJ
¡Genial! Ojalá esta funcionalidad viniera incluida con WP.
Miluette
Muchísimas gracias. Justo lo que necesitaba.
Suat
Es una excelente manera de editar CSS.
Gracias
Weerayut Teja
You save my work time.
Thanks Syed
Mike
Gracias por esto. Lo acabo de usar para crear un plugin rápido para agregar el slug y los slugs ancestros a la clase body. Cualquiera que esté interesado puede conseguirlo aquí: https://github.com/bigmikestudios/bms-bodyclass-slug
Todd M.
Este es un gran fragmento para todos los desarrolladores de WordPress. Ahora viene de forma estándar en la configuración de mi tema.
Gaurav Ramesh
Gracias por esto. Pequeños consejos y trucos como estos ayudan mucho a los principiantes como yo.
Randy Caruso
Gracias por esto – me había quedado atascado modificando yo mismo y sufriendo las consecuencias.