• 10-11-2021, 09:31:07
    #1
    Aşağıdaki kod Wordpress'de otomatik olarak menülere eklenen kullanılmayan class'ları kaldırıyor, ancak kaldırılanlar arasında "menu-item-has-children" class'ını kullanıyorum ve onun kalkmasını istemiyorum. Yani hariç tutulmasını istiyorum. Örnek vereyim:

    Alt menü yoksa:
    menu-item menu-item-type-taxonomy menu-item-object-category menu-item-163
    Alt menü varsa:
    menu-item menu-item-type-taxonomy menu-item-object-category menu-item-163 menu-item-has-children
    menu-item-has-children kalkınca alt menü çalışıyor.

    Kod şu şekilde:
        function clear_nav_menu_item_class() {
            return array();
        }
        add_filter( 'nav_menu_css_class', 'clear_nav_menu_item_class' );
    Şurada farklı kodlar var belki çözüm buradadır ama ben anlamadığımdan yapamadım: https://gist.github.com/hitautodestruct/4345363
  • 10-11-2021, 10:02:53
    #2
    Denemedim ancak siz şöyle bir deneyin, çalışmasa bile ihtiyacınız olan şey is_array ile array_intersect bunlardan yola çıkarak farklı aramalar yaparak bulabilirsiniz.

    function clear_nav_menu_item_class($var) {
    return is_array($var) ? array_intersect($var, array('menu-item-has-children')) : '';
    }
    add_filter( 'nav_menu_css_class', 'clear_nav_menu_item_class' );
  • 10-11-2021, 11:09:01
    #3
    Scorpion2763 adlı üyeden alıntı: mesajı görüntüle
    Denemedim ancak siz şöyle bir deneyin, çalışmasa bile ihtiyacınız olan şey is_array ile array_intersect bunlardan yola çıkarak farklı aramalar yaparak bulabilirsiniz.

    function clear_nav_menu_item_class($var) {
    return is_array($var) ? array_intersect($var, array('menu-item-has-children')) : '';
    }
    add_filter( 'nav_menu_css_class', 'clear_nav_menu_item_class' );
    Budur hocam, çok teşekkürler.
  • 16-11-2021, 14:56:35
    #4
    Scorpion2763 adlı üyeden alıntı: mesajı görüntüle
    Denemedim ancak siz şöyle bir deneyin, çalışmasa bile ihtiyacınız olan şey is_array ile array_intersect bunlardan yola çıkarak farklı aramalar yaparak bulabilirsiniz.

    function clear_nav_menu_item_class($var) {
    return is_array($var) ? array_intersect($var, array('menu-item-has-children')) : '';
    }
    add_filter( 'nav_menu_css_class', 'clear_nav_menu_item_class' );
    Hocam şimdi farklı bir sorun ile daha karşılaştım. Görünüm > Menüler kısmından menüye CSS sınıfları kısmında bir şeyler eklediğimde onlarda çalışmıyor. Bunları da hariç tutmam lazım, nasıl yapabilirim? Şuradaki alan:

  • 16-11-2021, 17:44:18
    #5
    array('menu-item-has-children','sizin-class')
    şeklinde deneyebilirsiniz.
    diğer türlü sadece özel classları ayrıştırmak için bir parametre yok.
    siz oraya <i diye eklemişsiniz ama muhtemelen kaynakta inceleidğinizde bir plugin veya temaya bağlı bir fonksiyon o yazdığınız classa atıyordur.
    bu kalsı bulup yukarıdaki gibi array içerisinde tanımlamanız lazım.

    SkyGhostAir adlı üyeden alıntı: mesajı görüntüle
    Hocam şimdi farklı bir sorun ile daha karşılaştım. Görünüm > Menüler kısmından menüye CSS sınıfları kısmında bir şeyler eklediğimde onlarda çalışmıyor. Bunları da hariç tutmam lazım, nasıl yapabilirim? Şuradaki alan:

  • 16-11-2021, 20:08:53
    #6
    Scorpion2763 adlı üyeden alıntı: mesajı görüntüle
    array('menu-item-has-children','sizin-class')
    şeklinde deneyebilirsiniz.
    diğer türlü sadece özel classları ayrıştırmak için bir parametre yok.
    siz oraya <i diye eklemişsiniz ama muhtemelen kaynakta inceleidğinizde bir plugin veya temaya bağlı bir fonksiyon o yazdığınız classa atıyordur.
    bu kalsı bulup yukarıdaki gibi array içerisinde tanımlamanız lazım.
    Yok hocam <i'yi silmeyi unutmuşum ekran görüntüsü çekerken, sorum onunla alakalı değil. Sorum sadece CSS sınıfının içerisine yazılanın da silinmesi ile ilgili.

    sizin-class diye belirttiğiniz yere burada girilen değeri yazdırmak mümkün ise o da sorunu çözecektir diye düşünüyorum?

  • 16-11-2021, 23:27:51
    #7
    Eklediğiniz tüm kodları kaldırıp, class eklediğiniz menüyü öğeyi denetleden sahip olduğu tüm classları ile beraber ekran görüntüsü atın.
    before after elemanları dahil.
  • 18-11-2021, 00:04:20
    #8
    Scorpion2763 adlı üyeden alıntı: mesajı görüntüle
    Eklediğiniz tüm kodları kaldırıp, class eklediğiniz menüyü öğeyi denetleden sahip olduğu tüm classları ile beraber ekran görüntüsü atın.
    before after elemanları dahil.
    Dediğiniz gibi yaptım hocam, eklediğim kodların altını çizdim onların 2. görselde de kalmasını istiyorum.



  • 18-11-2021, 07:07:52
    #9
    function clear_nav_menu_item_class($var) {
    return is_array($var) ? array_intersect($var, array('menu-item-has-children','dm-icon-cat-food','ozel-css-sinifi')) : '';
    }
    add_filter( 'nav_menu_css_class', 'clear_nav_menu_item_class' );