2013-02-22 10 views
9

All'interno Wordpress header.php, hoCome controllare per la classe in body_class() in Wordpress

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

Come fare controllare per vedere se una specifica classe esiste, e quindi il carico di markup come risultato? Per es.

<body class"home logged-in"> 

<?php if $class == 'home' ?> 
    <div class="home"></div> 
<? else : ?> 
    <div class="internal-page"></div> 
<? endif; ?> 

Grazie!

risposta

27

Se davvero, davvero bisogno di usare marcatura diversa in base ai body_class classi, quindi utilizzare get_body_class

$classes = get_body_class(); 
if (in_array('home',$classes)) { 
    // your markup 
} else { 
    // some other markup 
} 

Ma c'è sono probabilmente i modi migliori per farlo, come il suggerimento di @ @ Rob Conditional Tags. Queste mappe sono abbastanza vicine alle classi utilizzate da body_class.

+0

Ho provato il tuo metodo per afferrare la classe del corpo con 'get_body_class();', ma quando si passa attraverso l'array e si fa eco contenuto, sputa TUTTI i tag della classe, eccetto quello che ho aggiunto manualmente con 'body_class ($ class);'. Sto facendo qualcosa di sbagliato? Riesco a vedere la mia classe nel tag del corpo, ma 'get_body_class();' non ce l'ha contenuto lì dentro ... –

+0

@KerynGill: sembra che tu abbia un problema diverso rispetto all'OP. Probabilmente dovresti aprire o possedere domande e fornire il tuo codice per noi da valutare. –

1

È possibile accedere a body_class con un filtro add_filter('body_class', function ...) tuttavia, penso che stiate adottando l'approccio sbagliato. Perché non usare solo CSS per quello che ti serve? Ad esempio, .home>div { /* home styles */ }

oppure caricare un foglio di stile diverso

add_filter('body_class', function($classes) { 
    if (in_array('home', $classes)) { 
     wp_enqueue_style('home'); 
    } 
    return $classes; 
}); 
+0

Desidero adottare questo approccio rispetto all'aggiunta di fogli di stile con classi specifiche in modo tale da poter caricare un partial parziale solo per la home page o caricare un altro frammento di codice php o mark-up basato su un'altra classe. – Yasir

+1

Quindi suggerisco di usare [tag condizionali] (http://codex.wordpress.org/Conditional_Tags) – Rob

Problemi correlati