Stilizare doar pentru pagina principală
Sunt relativ nou în WordPress, dar sunt sigur că există o modalitate de a face ceea ce doresc.
Am un container în șablonul meu și pe pagina principală aș dori să specific un padding ușor diferit pentru acest element.
CSS-ul meu actual este următorul:
#main_content .container {
position: relative;
padding: 120px 0;
}
Aș dori să reduc padding-ul la 80px dacă sunt pe pagina principală, altfel să-l păstrez așa cum este.
Este ceva ce ar trebui să fac în șablon sau există trucuri CSS 'specifice WordPress' de care nu sunt conștient momentan?
Din experiența mea limitată, cred că ar trebui să pot specifica dacă pagina este is_home
sau similar, și să selectez o foaie de stil personalizată în fișierul header.php
pentru pagina principală. Probabil, cu !important
după modificarea padding-ului pentru CSS.
Poate cineva să mă îndrume? Rezultatele pe care le găsesc prin căutare nu sunt exact ceea ce încerc să fac.

Funcția WordPress body_class($class)
este o modalitate dinamică și utilă de a încărca stiluri și js pentru anumite conținuturi ale paginii. Dacă tema ta nu suportă clasele pentru body, poți să le adaugi foarte simplu:
- Deschide fișierul
header.php
(sau template-ul care conține tag-ul<body>
) - Editează tag-ul
<body>
și transformă-l în<body <?php body_class(); ?>>
— și ai terminat! :)
Acum, când te afli pe:
- Pagina
Home
, tag-ul body va fi randat ca<body class="blog">
- Pagina
Front Page
, tag-ul body va fi randat ca<body class="home">
- Pagina de detaliu a unui articol (
single.php
), tag-ul body va fi randat ca<body class="single">
- Pagina de detaliu a unei pagini (
page.php
), tag-ul body va fi randat ca<body class="page">
Acum ești liber să stilizezi cum dorești. Pentru un fișier extern de stiluri, iar pentru pagina de start, stilul tău poate fi (după cum a menționat deja @saifur):
body.home #main_content .container {
position: relative;
padding: 120px 0;
}
CSS Intern
Pentru CSS intern, WordPress are un verificator condițional numit is_home()
și un altul numit is_front_page()
. Cu aceste două funcții, poți verifica dacă te afli pe pagina de start sau pe pagina principală și poți încărca codul CSS intern:
<?php if( is_home() || is_front_page() ) : ?>
<style id="my-internal-css">
#main_content .container {
position: relative;
padding: 120px 0;
}
</style>
<?php endif; ?>
În mod similar, există și alte funcții precum is_single()
, is_page()
, is_category()
, is_archive()
, is_day()
, ș.a.m.d.

Dacă te afli pe pagina Home
, tag-ul body va fi randat ca <body class="blog"> în loc de home
, iar pe Front Page
va fi <body class="home"> în loc de front-page
:
https://core.trac.wordpress.org/browser/tags/4.9.2/src/wp-includes/post-template.php#L570

@mayeenul Islam, am aplicat niște CSS pe clasa ".page" pentru paginile mele interioare. Dar pagina mea principală are atât clasa ".home" cât și ".page". Cum ar trebui să procedez în acest caz?
