2013-02-22 31 views
9

yılında body_class() içinde Class denetle nasıl ben Wordpress header.php içinde Wordpress

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

Nasıl belirli bir sınıf sonucu daha sonra yük işaretlemeyi var ve görmek için kontrol edebilirim

? Örn.

<body class"home logged-in"> 

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

Teşekkürler!

cevap

27

yükleyebilirsiniz, daha sonra kullanmak get_body_class

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

Ama Rob'un Conditional Tags önerisi gibi, bunu yapmak daha iyi yollardır. Bunlar, body_class tarafından kullanılan sınıflara oldukça yakındır.

+0

Vücut sınıfını 'get_body_class();' ile yakalama yöntemini denedim, ancak dizide gezinirken ve yankılanırken içerik, TÜM sınıf etiketlerine, 'body_class ($ class); Yanlış bir şey mi yapıyorum? Sınıfımı beden etiketinde görebilirim, ancak 'get_body_class();' Orada yer almaz ... –

+0

@KerynGill: OP'den daha farklı bir sorununuz var gibi geliyor. Muhtemelen açmanız ya da sormanız ve değerlendirmemiz için kodunuzu vermeniz gerekir. –

1

body_class ürününe add_filter('body_class', function ...) numaralı bir filtreyle erişebilirsiniz, ancak yanlış yaklaşmayı düşünüyorsunuz. Neden ihtiyacınız olan şey için css kullanmıyorsunuz? Eğer gerçekten, gerçekten body_class sınıflar dayalı farklı işaretlemeyi kullanmanız gerekiyorsa Örneğin, .home>div { /* home styles */ }

Yoksa farklı bir stil

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

Bu yaklaşımı, belirli sınıflarla belirli bir kısmi yükleme için ya da başka bir sınıfa göre başka bir php snippet'i veya işaretlemesi yüklemek için belirli sınıflarla stil sayfası eklemeyi tercih ediyorum. – Yasir

+1

Daha sonra [koşullu etiketler] kullanmanızı öneririz (http://codex.wordpress.org/Conditional_Tags) – Rob