0

I bascially need to just be able to show the polish translated menu or the english menu. The best way I can think of it is:

if($languageCookie=='polish'){
  wp_nav_menu(use the navigation label rather than the page title)
}else{
  wp_nav_menu(use the page title rather than the navigation label)
}

That is because in appearance>menus for each menu item you can also choose to have a navigation label and a title label.

0

I found the answer was to create my own walker with a little help from this article.

This is it. The most important part being when it checks for the $language value (which is got from a cookie), and assigns the value of either $item->title or $item->description.

    class description_walker extends Walker_Nav_Menu
{
      function start_el(&$output, $item, $depth, $args)
      {
        global $language;
           global $wp_query;
           $indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
           $class_names = $value = '';

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

           $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) );
           $class_names = ' class="'. esc_attr( $class_names ) . '"';

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

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

           $prepend = '<strong>';
           $append = '</strong>';


            $item_output = $args->before;
            $item_output .= '<a'. $attributes .'>';
          if($language=="polish"){
               $item_output .= $args->link_before .$prepend.apply_filters( 'the_title', $item->description, $item->ID ).$append;
           }else{
            $item_output .= $args->link_before .$prepend.apply_filters( 'the_title', $item->title, $item->ID ).$append;
           }


            $item_output .= '</a>';
            $item_output .= $args->after;

            $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
            }
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.