Tutorial WordPress affidabili, quando ne hai più bisogno.
Guida per principianti a WordPress
WPB Cup
25 Milioni+
Siti web che utilizzano i nostri plugin
16+
Anni di esperienza con WordPress
3000+
Tutorial WordPress di esperti

WordPress Body Class 101: Suggerimenti e trucchi per i designer di temi

Se sei un aspirante designer di temi WordPress, padroneggiare il CSS è fondamentale per sbloccare un maggiore controllo, personalizzazione ed efficienza nel tuo flusso di lavoro. 

Fortunatamente, WordPress aggiunge automaticamente classi CSS che puoi utilizzare nei tuoi temi. Diverse di queste classi CSS vengono aggiunte automaticamente alla sezione <body> di ogni pagina su un sito web WordPress.

In questo articolo, spiegheremo la classe body di WordPress. Condivideremo anche suggerimenti e trucchi per l'utilizzo delle classi body di WordPress, basati su anni di esperienza nello sviluppo di temi, per aiutarti a migliorare i tuoi progetti.

Utilizzo della classe body di WordPress per lo sviluppo di temi
Here is a quick overview of what you’ll learn in this article.

Cos'è la classe Body di WordPress?

La classe body (body_class) è una funzione di WordPress che ti consente di assegnare classi CSS all'elemento body.

Il tag HTML body inizia normalmente nel file header.php di un tema, che viene caricato su ogni pagina. Questo ti permette di determinare dinamicamente quale pagina sta visualizzando un utente e quindi aggiungere le classi CSS di conseguenza.

Normalmente, la maggior parte dei temi starter e dei framework includono già la funzione body class all'interno del tag HTML body. Tuttavia, se il tuo tema non la include, puoi aggiungerla modificando il tag body in questo modo:

<body <?php body_class($class); ?>>

A seconda del tipo di pagina visualizzata, WordPress aggiunge automaticamente le classi appropriate.

Ad esempio, se ti trovi su una pagina di archivio, WordPress aggiungerà automaticamente la classe archive all'elemento body. Lo fa per quasi tutte le pagine.

Correlato: Vedi come funziona WordPress dietro le quinte (infografica).

Ecco alcuni esempi di classi comuni che WordPress potrebbe aggiungere, a seconda della pagina visualizzata:

.rtl {}
.home {}
.blog {}
.archive {}
.date {}
.search {}
.paged {}
.attachment {}
.error404 {}
.single postid-(id) {}
.attachmentid-(id) {}
.attachment-(mime-type) {}
.author {}
.author-(user_nicename) {}
.category {}
.category-(slug) {}
.tag {}
.tag-(slug) {}
.page-parent {}
.page-child parent-pageid-(id) {}
.page-template page-template-(template file name) {}
.search-results {}
.search-no-results {}
.logged-in {}
.paged-(page number) {}
.single-paged-(page number) {}
.page-paged-(page number) {}
.category-paged-(page number) {}
.tag-paged-(page number) {}
.date-paged-(page number) {}
.author-paged-(page number) {}
.search-paged-(page number) {}

Come puoi vedere, avendo una risorsa così potente a disposizione, puoi personalizzare interamente la tua pagina WordPress usando solo CSS. Puoi personalizzare specifiche pagine del profilo autore, archivi basati sulla data, ecc.

Detto questo, diamo ora un'occhiata a come e quando useresti la classe body.

Quando usare la classe Body di WordPress

Innanzitutto, devi assicurarti che l'elemento body del tuo tema contenga la funzione body class come mostrato sopra. Se lo fa, includerà automaticamente tutte le classi CSS generate da WordPress menzionate sopra.

Dopodiché, sarai anche in grado di aggiungere le tue classi CSS personalizzate all'elemento body. Puoi aggiungere queste classi ogni volta che ne hai bisogno.

Ad esempio, se desideri modificare l'aspetto degli articoli di un autore specifico archiviati sotto una categoria specifica.

Come aggiungere classi Body personalizzate

WordPress ha un filtro che puoi utilizzare per aggiungere classi body personalizzate quando necessario. Ti mostreremo come aggiungere una classe body utilizzando il filtro prima di mostrarti lo scenario di caso d'uso specifico, in modo che tutti siano sulla stessa pagina.

Poiché le classi del corpo sono specifiche del tema, dovresti aggiungere il seguente codice al file functions.php del tuo tema o in un plugin per snippet di codice.

function my_class_names($classes) {
    // add 'class-name' to the $classes array
    $classes[] = 'wpb-class';
    // return the $classes array
    return $classes;
}
 
//Now add test class to the filter
add_filter('body_class','my_class_names');

Il codice sopra aggiungerà una classe "wpb-class" al tag body su ogni pagina del tuo sito web.

Ti consigliamo di aggiungere questo codice con WPCode, il miglior plugin per snippet di codice sul mercato. Rende sicuro e facile aggiungere codice personalizzato in WordPress senza modificare il file functions.php del tuo tema.

Per prima cosa, devi installare e attivare il plugin gratuito WPCode. Se hai bisogno di istruzioni, consulta la nostra guida su come installare un plugin di WordPress.

Una volta attivato il plugin, vai su Snippet di codice » + Aggiungi snippet dal tuo pannello di amministrazione di WordPress. 

Quindi, trova l'opzione ‘Aggiungi il tuo codice personalizzato (Nuovo snippet)’ e fai clic sul pulsante ‘+ Aggiungi snippet personalizzato’ sottostante.

Aggiungere codice personalizzato in WPCode

Da lì, devi scegliere un tipo di codice dall'elenco di opzioni che appaiono sullo schermo.

Per questo tutorial, seleziona 'Snippet PHP'.

Seleziona Snippet PHP come tipo di codice

Successivamente, aggiungi un titolo per il tuo snippet, che può essere qualsiasi cosa per aiutarti a ricordare a cosa serve il codice.

Quindi, incolla il codice sopra nella casella 'Anteprima codice'.

Incolla il codice nella casella Anteprima codice

Dopodiché, è sufficiente attivare l'interruttore da 'Inattivo' ad 'Attivo' e fare clic sul pulsante 'Salva frammento'.

Attiva e salva il tuo snippet di codice personalizzato

Ora puoi utilizzare questa classe CSS direttamente nel foglio di stile del tuo tema.

Se stai lavorando sul tuo sito web, puoi anche aggiungere il CSS utilizzando la funzione CSS personalizzato nel personalizzatore del tema di WordPress.

Aggiunta di CSS personalizzato nel personalizzatore del tema

Per maggiori dettagli, consulta la nostra guida su come aggiungere facilmente CSS personalizzato al tuo sito WordPress.

Aggiungere classi Body utilizzando un plugin WordPress

Se non stai lavorando a un progetto per un cliente e non vuoi scrivere codice, questo metodo ti sarà più facile.

La prima cosa da fare è installare e attivare il plugin Custom Body Class. Per maggiori dettagli, consulta la nostra guida passo passo su come installare un plugin di WordPress.

Dopo l'attivazione, devi visitare la pagina Impostazioni » Custom Body Class. Da qui puoi configurare le impostazioni del plugin.

Impostazioni classe body personalizzata

Puoi selezionare i tipi di post in cui desideri abilitare la funzionalità della classe del corpo e chi può accedervi. Non dimenticare di fare clic sul pulsante 'Salva modifiche' per memorizzare le tue impostazioni.

Successivamente, puoi passare a modificare qualsiasi post o pagina sul tuo sito WordPress. Nella schermata di modifica del post, troverai una nuova meta box nella colonna di destra etichettata 'Classi del post'.

Aggiungere classi body a un post in WordPress

Fai clic per aggiungere le tue classi CSS personalizzate. Puoi aggiungere più classi separate da uno spazio.

Una volta terminato, puoi semplicemente salvare o pubblicare il tuo post. Il plugin aggiungerà ora le tue classi CSS personalizzate alla classe del corpo per quel particolare post o pagina.

Utilizzo di tag condizionali con la classe Body

Il vero potere della funzione body_class si manifesta quando viene utilizzata con i tag condizionali.

Questi tag condizionali sono tipi di dati vero o falso che verificano se una condizione è vera o falsa in WordPress. Ad esempio, il tag condizionale is_home verifica se la pagina attualmente visualizzata è la homepage o meno.

Ciò consente agli sviluppatori di temi di verificare se una condizione è vera o falsa prima di aggiungere una classe CSS personalizzata alla funzione body_class.

Diamo un'occhiata ad alcuni esempi di utilizzo dei tag condizionali per aggiungere classi personalizzate alla classe del corpo.

Supponiamo che tu voglia stilizzare la tua homepage in modo diverso per gli utenti connessi con il ruolo utente dell'autore user role. Mentre WordPress genera automaticamente una classe .home e .logged-in, non rileva il ruolo dell'utente né lo aggiunge come classe.

Ora, questo è uno scenario in cui puoi utilizzare i tag condizionali con del codice personalizzato per aggiungere dinamicamente una classe personalizzata alla classe del corpo.

Per ottenere questo, aggiungerai il seguente codice al file functions.php del tuo tema o a un plugin per snippet di codice.

function wpb_loggedin_user_role_class($classes) { 
 
// let's check if it is homepage
if ( is_home() ) {
 
// Now let's check if the logged in user has author user role.  
$user = wp_get_current_user();
if ( in_array( 'author', (array) $user->roles ) ) {
    //The user has the "author" role
    // Add user role to the body class
    $classes[] = 'author';
    // Return the classes array
    return $classes;      
} 
} else { 
// if it is not homepage, then just return default classes
return $classes; 
}
} 
 
add_filter('body_class', 'wpb_loggedin_user_role_class');

Ora, diamo un'occhiata a un altro esempio utile. Questa volta controlleremo se la pagina visualizzata è un'anteprima di una bozza di WordPress.

Per fare ciò, utilizzeremo il tag condizionale is_preview e quindi aggiungeremo la nostra classe CSS personalizzata.

function add_preview_class($classes) { 
if ( is_preview() )  {
$classes[] = 'preview-mode';
return $classes;
}
return $classes; 
}
add_filter('body_class','add_preview_class');

Ora, aggiungeremo il seguente CSS al foglio di stile del nostro tema per utilizzare la nuova classe CSS personalizzata che abbiamo appena aggiunto.

.preview-mode .site-header:before { 
content:'preview mode';
color:#FFF;
background-color:#ff0000;
}

Ecco come appariva sul nostro sito demo:

Classe CSS personalizzata per la modalità di anteprima aggiunta alla classe body

Potresti voler controllare l'elenco completo dei tag condizionali che puoi utilizzare in WordPress. Questo ti fornirà un utile set di tag pronti all'uso per il tuo codice.

Altri esempi di aggiunta dinamica di classi Body personalizzate

Oltre ai tag condizionali, puoi anche utilizzare altre tecniche per recuperare informazioni dal database di WordPress e creare classi CSS personalizzate per la classe del corpo.

Aggiungere nomi di categorie alla classe del corpo di una singola pagina di post

Supponiamo che tu voglia personalizzare l'aspetto dei singoli post in base alla categoria in cui sono archiviati. Puoi usare la classe body per ottenere questo risultato

Innanzitutto, devi aggiungere i nomi delle categorie come classe CSS nelle pagine dei singoli post. Per farlo, aggiungi il seguente codice al file functions.php del tuo tema o a un plugin per snippet di codice come WPCode:

// add category nicenames in body class
function category_id_class($classes) {
    global $post;
    foreach((get_the_category($post->ID)) as $category)
        $classes[] = $category->category_nicename;
    return $classes;
}
  
add_filter('body_class', 'category_id_class');

Il codice sopra aggiungerà la classe della categoria nella tua classe body per le pagine dei singoli post. Puoi quindi utilizzare le classi CSS per stilizzarla come desideri.

Aggiungere lo slug della pagina alla classe body

Incolla il seguente codice nel file functions.php del tuo tema o in un plugin per snippet di codice:

//Page Slug Body Class
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' );

Ancora una volta, consigliamo di aggiungere questo codice in WordPress utilizzando un plugin per snippet di codice come WPCode. In questo modo, non dovrai preoccuparti di rompere il tuo sito.

Inizia installando e attivando il plugin gratuito WPCode. Se hai bisogno di aiuto, segui questa guida su come installare un plugin WordPress.

Una volta attivato il plugin, vai su Snippet di codice » Aggiungi snippet dalla dashboard di WordPress.

Quindi, fai clic sul pulsante 'Usa snippet' sotto l'opzione 'Aggiungi il tuo codice personalizzato (Nuovo snippet)'.

Aggiungere codice personalizzato in WPCode

Successivamente, seleziona 'Snippet PHP' come tipo di codice.

Seleziona Snippet PHP come tipo di codice

Dopodiché, aggiungi semplicemente un titolo per il tuo snippet di codice e incolla il codice sopra nella casella 'Anteprima codice'.

Incolla lo snippet di codice in WPCode

Infine, sposta l'interruttore da 'Inattivo' ad 'Attivo' e fai clic sul pulsante 'Salva snippet'.

Attiva e salva il tuo snippet di codice personalizzato

Rilevamento del browser e classi Body specifiche per browser

A volte potresti riscontrare problemi in cui il tuo tema potrebbe necessitare di CSS aggiuntivo per un particolare browser.

Ora, la buona notizia è che WordPress rileva automaticamente il browser al caricamento e memorizza temporaneamente queste informazioni come variabile globale.

Devi solo verificare se WordPress ha rilevato un browser specifico e quindi aggiungerlo come classe CSS personalizzata.

Semplicemente, copia e incolla il seguente codice nel file functions.php del tuo tema o in un plugin per snippet di codice:

function wpb_browser_body_class($classes) { 
    global $is_iphone, $is_chrome, $is_safari, $is_NS4, $is_opera, $is_macIE, $is_winIE, $is_gecko, $is_lynx, $is_IE, $is_edge;
 
if ($is_iphone)    $classes[] ='iphone-safari';
elseif ($is_chrome)    $classes[] ='google-chrome';
elseif ($is_safari)    $classes[] ='safari';
elseif ($is_NS4)    $classes[] ='netscape';
elseif ($is_opera)    $classes[] ='opera';
elseif ($is_macIE)    $classes[] ='mac-ie';
elseif ($is_winIE)    $classes[] ='windows-ie';
elseif ($is_gecko)    $classes[] ='firefox';
elseif ($is_lynx)    $classes[] ='lynx';
elseif ($is_IE)      $classes[] ='internet-explorer';
elseif ($is_edge)    $classes[] ='ms-edge';
else $classes[] = 'unknown';
     
return $classes;
}
add_filter('body_class','wpb_browser_body_class');

Puoi quindi utilizzare classi come:

.ms-edge .navigation {some item goes here}

Se si tratta di un piccolo problema di padding o margine, questo è un modo abbastanza semplice per risolverlo.

Ci sono sicuramente molti altri scenari in cui l'utilizzo della funzione body_class può salvarti dallo scrivere lunghe righe di codice. Ad esempio, se stai utilizzando un framework di temi come Genesis, puoi usarlo per aggiungere classi personalizzate nel tuo child theme.

Puoi usare la funzione body_class per aggiungere classi CSS per layout di pagina a larghezza intera, contenuto della sidebar, intestazioni e piè di pagina, ecc.

Guide esperte sulla progettazione di temi WordPress

Cerchi altri tutorial? Dai un'occhiata alle nostre altre guide sul design dei temi in WordPress:

Speriamo che questo articolo ti abbia aiutato a imparare come utilizzare la classe body di WordPress nei tuoi temi. Potresti anche voler consultare il nostro articolo su come stilizzare ogni post di WordPress in modo diverso e il nostro confronto tra i migliori plugin per page builder di WordPress.

Se ti è piaciuto questo articolo, iscriviti al nostro canale YouTube per tutorial video su WordPress. Puoi anche trovarci su Twitter e Facebook.

Dichiarazione: Il nostro contenuto è supportato dai lettori. Ciò significa che se fai clic su alcuni dei nostri link, potremmo guadagnare una commissione. Vedi come è finanziato WPBeginner, perché è importante e come puoi supportarci. Ecco il nostro processo editoriale.

Il Toolkit WordPress Definitivo

Ottieni l'accesso GRATUITO al nostro toolkit - una raccolta di prodotti e risorse relative a WordPress che ogni professionista dovrebbe avere!

Interazioni del lettore

14 CommentsLeave a Reply

  1. Grazie per aver condiviso questi suggerimenti e codici sulla classe body di WordPress, sto appena imparando questa classe qui dato che mi occupo di sviluppo WordPress, quindi questo post mi è utile per capire meglio le classi e le funzioni di WordPress.

  2. Grazie dopo aver letto diversi articoli riguardo alla classe body, questo è quello che finalmente mi è entrato in testa.

    Ci sono riuscito a farlo funzionare su pagine singole e su pagine di categoria, è fantastico. I casi d'uso sono ciò che ha fatto la differenza per me.

  3. Ottimi suggerimenti! Sto cercando di capire come aggiungere la classe del menu (quella che si può inserire nell'admin) a body_class:

    [pre]
    /** Aggiungi la classe CSS del menu di navigazione alla classe del body */
    function add_nav_menu_css( $classes ) {
    $classes[] = ‘menu-class-from-admin’;
    return $classes;
    }
    add_filter( ‘body_class’, ‘add_nav_menu_css’ );
    [/pre]

  4. Ottimi suggerimenti. Sto cercando di fare questo, e quando inserisco "page-template page-template-(nome file template)" nel mio file header in modo da avere:

    <body >

    E poi modifico il mio CSS per includere: .page-template-home_corechella

    Mi ritrovo con una pagina completamente bianca. Niente. Cosa sto sbagliando? Grazie!

  5. ho una pagina di notizie che ottiene post usando category.php, voglio darle una classe specifica in modo da poter rendere il contenuto ampio e senza la barra laterale, come posso farlo?

  6. In effetti una buona scrittura e molto informativa. Solo una domanda: ad esempio, se oggi aggiungo la classe specifica per browser nel corpo e dopo qualche giorno ho bisogno di applicare la classe della pagina nel corpo slug. Le impostazioni/css che ho fatto con la classe specifica per browser nel corpo verranno rovinate o no?

Lascia un commento

Grazie per aver scelto di lasciare un commento. Tieni presente che tutti i commenti sono moderati secondo la nostra politica sui commenti, e il tuo indirizzo email NON verrà pubblicato. Si prega di NON utilizzare parole chiave nel campo del nome. Avviamo una conversazione personale e significativa.