Wsparcie » Rozmaitości » [rozwiązany] Jak dodać różne (personalne) menu dla kategorii

  • Ostatnio zacząłem przygodę z wordpressem. Chciałem dla każdej kategorii najwyższego rzędu dodać inne menu.
    Jeżeli mam adres strona.pl/kategoria-1/podkategoria to chciałem żeby dla kategorii najwyższego rzędu (kategoria-1) i dla jej podkategorii ładować personalne menu.

    if(is_category())
    {
    $category = get_category_parents($cat, false, ',', true);
    $current_name = explode(',', $category)[0]; // dla wpisu zwraca slug kategoria-1
    }
    
    if(is_single())
    {
    $post_cat = wp_get_post_categories( $post->ID );
    $category = get_category_parents($post_cat[0], false, ',', true);
    $current_name = explode(',', $category)[0]; // dla wpisu zwraca slug kategoria-1
    }

    Kod wstawiamy do header albo możemy opakować to w funkcje.

    Żeby wyświetlić personalne menu dla kategorii 1 tworzymy menu o takiej samej nazwie co kategoria czyli Kategoria 1 (slug menu będzie wyglądał tak samo jak kategorii).

    Żeby podpiąć menu dla danej kategorii zamieniamy nasze funkcję wp_nav_menu na:

    ( $current_name !== null) ? wp_nav_menu( array( 'theme_location' => 'primary', 'menu' => $current_name ) ) : wp_nav_menu( array( 'theme_location' => 'primary') );

    Jeżeli $current_name zwraca slug kategorii to wtedy załaduje menu kategorii, w innym przypadku załaduje defaultowe menu.

    Nie wiem czy to rozwiązanie jest dobre, bo pierwszy raz robię coś na wordpressie. Oczywiście możemy zrobić tak, żeby dla każdej kategorii było inne menu, a nie tylko dla tej pierwszego rzędu.

    Pozdro

  • The topic ‘[rozwiązany] Jak dodać różne (personalne) menu dla kategorii’ is closed to new replies.