WordPress farklı kategori sayfaları için Widget'in CSS sınıf adlarını değiştirme

1 Cevap php

WordPress her farklı kategoride sayfada kenar çubuğu widget sınıf isimlerini değiştirmek istiyorum ve ben bu tüm koşullara functions.php bir işlevi yapmak ve gerekli sınıf adını döndürmek olacaktır yapmak için en iyi yolu düşündüm. Sonra register_sidebar fonksiyonunun listesi etiketleri fonksiyonu olarak adlandırılır.

if (function_exists('register_sidebar')) {
  register_sidebar(array(
   'before_widget' => '<li class="sidebarModule">',
   'after_widget' => '</li><!-- end module -->',
   'before_title' => '<h2 class="moduleTitle "'.set_widget_title_color().'>',
   'after_title' => '</h2>',
  ));
}


function set_widget_title_color() {

    if(is_category('technology')) {
        $color = "catNavColor1_active";
    } elseif(is_category('gadgets')) {
        $color = "catNavColor2_active";
    } elseif(is_category('social-media')) {
        $color = "catNavColor3_active";
    } elseif(is_category('gaming')) {
        $color = "catNavColor4_active";
    } elseif(is_category('other')) {
        $color = "catNavColor5_active";
    }

    return $color;
}

Nedense yukarıdaki çalışmaz. Lütfen Yardım

Teşekkürler

1 Cevap

Ben kategori henüz tanımlanmamış zaman register_sidebars, çok erken sürecinde denir düşünüyorum. Eğer dynamic_sidebar_params filtresinin uygulanması denediniz mi? Ben WordPress Kodeksi şey bulamadı, ama ben bu nice example bulundu. Bu konuyla ilgili diğer bir soru da var a complete answer.

Bu fonksiyon dynamic_sidebar_params filtre olarak adlandırdığı, sizin widget dynamic_sidebar kullanarak sidebars uygulamak ise çalışır. Eğer (Widget yönetici sayfasını kullanarak değil, sizin şablonda tanımlanan) statik widget varsa, bu böyle, o şablonu kod, işlev çağrısı eklemek gerekir:

<li class="sidebarModule">
<h2 class="moduleTitle <?php echo set_widget_title_color(); ?>">Widget title</h2>
<?php /* Your widget code */ ?>
</li><!-- end module -->