Aplicar estilos solo en la página de inicio
Soy relativamente nuevo en WordPress, pero estoy seguro de que hay una manera de hacer lo que me gustaría hacer.
Tengo un contenedor en mi plantilla y en la página de inicio me gustaría especificar un padding ligeramente diferente para este elemento.
Mi CSS actual es el siguiente:
#main_content .container {
position: relative;
padding: 120px 0;
}
Me gustaría reducir el padding a 80px si estoy en la página de inicio, de lo contrario mantenerlo como está.
¿Es esto algo que tendría que hacer dentro de la plantilla o hay trucos de CSS 'exclusivos de WordPress' que actualmente desconozco?
En mi experiencia limitada, creo que debería poder especificar si la página es is_home
o similar, y seleccionar una hoja de estilos personalizada en el archivo header.php
para la página de inicio. Presumiblemente, con !important
después de mi cambio de padding en el CSS.
¿Pueden darme alguna dirección? Los resultados que estoy encontrando a través de la búsqueda no son particularmente lo que estoy tratando de hacer.

La función body_class($class)
de WordPress es una forma dinámica y útil de cargar estilos y JavaScript para contenidos específicos del cuerpo. Si tu tema no soporta las clases del cuerpo, puedes agregarlas fácilmente:
- Abre el archivo
header.php
(o la plantilla que contiene la etiqueta<body>
) - Edita la etiqueta
<body>
y cámbiala a<body <?php body_class(); ?>>
— ¡Listo! :)
Ahora, cuando estés en:
- La página de
Inicio
, tu etiqueta body se renderizará como<body class="blog">
- La
Página de Portada
, tu etiqueta body se renderizará como<body class="home">
- La página de detalle de una entrada (
single.php
), tu etiqueta body será<body class="single">
- La página de detalle de una página estática (
page.php
), tu etiqueta body será<body class="page">
Así que ahora eres libre de estilizar como quieras. Para una hoja de estilos externa, y para la página de inicio, tu estilo será (como @saifur ya mencionó):
body.home #main_content .container {
position: relative;
padding: 120px 0;
}
CSS Interno
Para CSS interno, WordPress tiene un verificador condicional llamado is_home()
, y otro llamado is_front_page()
. Con estos dos, puedes verificar si estás en la página de inicio o en la página de portada, y luego cargar tu código CSS interno:
<?php if( is_home() || is_front_page() ) : ?>
<style id="my-internal-css">
#main_content .container {
position: relative;
padding: 120px 0;
}
</style>
<?php endif; ?>
De manera similar, existen is_single()
, is_page()
, is_category()
, is_archive()
, is_day()
, ... y así sucesivamente...

Si estás en la página Home
, tu etiqueta body se renderizará como <body class="blog"> en lugar de home
y en la Front Page
como <body class="home"> en lugar de front-page
:
https://core.trac.wordpress.org/browser/tags/4.9.2/src/wp-includes/post-template.php#L570

@mayeenul Islam, he aplicado algo de CSS en la clase ".page" para mis páginas internas. Pero mi página de inicio tiene ambas clases ".home" & ".page". ¿Cómo debería manejar esto?
