Skocz do zawartości


Zenbox.pl promocja
Zdjęcie
- - - - -

HELP! aktywny item menu na rodzicach menu

menu nawigacja current parent

  • Zaloguj się, aby dodać odpowiedź
Brak odpowiedzi do tego tematu

#1 rafalwp

rafalwp
  • Bloger
  • 1 postów

Napisano 01.09.2017 - 13:33

Witam
od razu zaznaczę, nie mam doświadczenia

 

Jak zrobić aby do menu rodzica dodawała się klasa active? (nie chodzi mi o menu główne )
ścieżka:
/nazwaKat/nazwaPodkat/nazwaPodpodkt/

 

menu jest na stronie w content (na shortcodzie) z walkerem,
na /nazwaKat/nazwaPodkat/ działa ok (jest tam klasa class=sactive)

/* walker dla nazwaPodkat (tam jest thumbnail ale to nie ważne)*/
class Walker_kat extends Walker_Nav_Menu
{    
 function start_el(&$output, $item, $depth, $args) {
        global $wp_query;
        $indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';

        $class_names = $value = '';

        $classes = empty( $item->classes ) ? array() : (array) $item->classes;

        $class_names = in_array("current_page_item",$item->classes) ? 'class="sactive"' : '';

    $output .= "<li id='menu-item-$item->ID' $class_names>";

    $attributes  = '';

    ! empty( $item->attr_title )
        and $attributes .= ' title="'  . esc_attr( $item->attr_title ) .'"';
    ! empty( $item->target )
        and $attributes .= ' target="' . esc_attr( $item->target     ) .'"';
    ! empty( $item->xfn )
        and $attributes .= ' rel="'    . esc_attr( $item->xfn        ) .'"';
    ! empty( $item->url )
        and $attributes .= ' href="'   . esc_attr( $item->url        ) .'"';

    // insert thumbnail
    // you may change this
     $thumbnail = '';
    if ( has_post_thumbnail( $item->object_id ) ) {
  $thumbnail = get_the_post_thumbnail( $item->object_id );
  }

    $title = apply_filters( 'the_title', $item->title, $item->ID );

    $item_output = $args->before
        . "<a>"
        . $args->link_before
        . $title
        . '</a> '
        . $args->link_after
        . $args->after;

    // Since $output is called by reference we don't need to return anything.
    $output .= apply_filters(
        'walker_nav_menu_start_el'
    ,   $item_output
    ,   $item
    ,   $depth
    ,   $args
    );
   }}

Problem rodzi się gdy jest dodatkowe menu na następnej stronie (/nazwaKat/nazwaPodkat/nazwaPodpodkt/

czyli są dwa menu- to co wyżej i nowe z inny ostylowaniem

 

domyslam się zę to rozwiązanie nie jest najlepsze (ucze się i szukam) ale działa i tak mam 2 shortcody (2 menu)

 

1 menu  dla 'nazwaPodkat'

$parent = $post->post_parent;
$get_grandparent = get_post($parent);
$grandparent = $get_grandparent->post_parent;
 echo do_shortcode(' [listmenu menu="'.get_the_title($grandparent).'"]');

2 menu dla 'nazwaPodpodkt'

echo do_shortcode(' [listmenu_subkat menu="'.get_the_title($post->post_parent).'"]');

Na stronie /nazwaKat/nazwaPodkat/nazwaPodpodkt/ (czyli mamy dwie nawigacje) class active jest na ?2 menu? a na ?1 menu? już nie ma.

 

są to dwa oddzielne menu dodane przez shortcode w php (inaczej ostylowane)

 

CO MAM ZROBIĆ? (już trace siły na szukanie) jak zmienić 1 walkera ?

 

próbowałem z jquery :

 $( ".subnav" ).find( 'a:contains("tu nazwa pod kat")' ).addClass( "sactive" );

nie działa (jquery mam dobrze podpięte)

 

Wszystkie zakładki to 'strony' w wordpresie
strona 'nazwaPodkat' ma swój szablon
strona 'nazwaPodpodkt' ma inny szablon
oraz odpowiednio zagnieżdżone w panelu wordpresa jako rodzić itd

 

POMOCY


Użytkownik rafalwp edytował ten post 02.09.2017 - 12:57




Również z jednym lub większą ilością słów kluczowych: menu, nawigacja, current, parent

Użytkownicy przeglądający ten temat: 0

0 members, 0 guests, 0 anonymous users

Poprzedni adres WWW tego tematu: http://www.wordpress.org.pl/HELP!-aktywny-item-menu-na-rodzicach-menu-t17466.html