2016-10-25 6 views
0

작년에 워커를 사용하여 Wordpress 메뉴에 요소를 추가했습니다. (How can I add parent menu description to my Wordpress menu?)Wordpress walker가 작동하지만 올바르지 않습니다.

현재 워커가 제 기능 파일이 slike 볼 : 기본적으로

// Submenu walker to add image 
class submenu_walker extends Walker_Nav_Menu { 
    function start_lvl(&$output, $depth = 0, $args = array()) { 
     $indent = str_repeat("\t", $depth); 
     global $description; 
     $output .= "<ul class='sub-menu'><li class='menu-image-container'><div class='menu-image'></div><div class='menu-description'>".$description."</div></li>"; 
    } 
    function end_lvl(&$output, $depth = 0, $args = array()) { 
     $indent = str_repeat("\t", $depth); 
     $output .= "<li><div class='clear'></div></li></ul>"; 
    } 
} 

, 내가하고 싶었던 것을하는 것은 이미지와 각 첫 번째 수준 하위 메뉴에 대한 간단한 설명을 추가했다 웹 사이트 : www.bellavou.co.uk

이 사이트를 방문하면 CSS를 사용하여 내가 원하지 않는 다른 모든 인스턴스를 숨기기 때문에 잘 보일 것입니다. 그러나 검사하면 부모 메뉴 항목의 모든 하위 메뉴에 메뉴 이미지 컨테이너가 추가 된 것을 볼 수 있습니다.

내부 '얼굴'에는 '얼굴', '눈'및 '귀'하위 메뉴와 기본 하위 메뉴에 표시되는 메뉴 항목 div가 있습니다.

나는 주된 것을 보여주고 싶다. 깊이있는 설정을 바꾸면된다고 생각하지만, 시도했지만 아무런 변화가 없다.

최상위 상위 하위 메뉴에서 새 하위 메뉴를 한 번만 만들려면 어떻게해야합니까?

UPDATE 해결하고자 & :

내가 규칙을 적용받을 깊이의 측면에서 오른쪽 라인을 따라 생각하고 있었다 밝혀졌습니다. 그러나 내가 가지고있는 기존의 하위 메뉴에 대해서는 생각하지 않았습니다.

// Submenu walker to add image 
class submenu_walker extends Walker_Nav_Menu { 
    function start_lvl(&$output, $depth = 0, $args = array()) { 
     $indent = str_repeat("\t", $depth); 
     if(0 == $depth) { 
      global $description; 
      $output .= "<ul class='sub-menu'><li class='menu-image-container'><div class='menu-image'></div><div class='menu-description'>".$description."</div></li>"; 
     } else { 
      $output .= "<ul class='sub-menu'>"; 
     } 
    } 
    function end_lvl(&$output, $depth = 0, $args = array()) { 
     $indent = str_repeat("\t", $depth); 
     if(0 == $depth) { 
      $output .= "<li><div class='clear'></div></li></ul>"; 
     } else { 
      $output .= "</ul>"; 
     } 
    } 
} 

이 이제 이미지 DIV 부모 하위 메뉴의 맨 위에 한 번 표시하고, 다른 사람들이 그들의 자식 항목을 표시로 고정했다.

답변

0

질문이 올바르게 이해 되었기를 바랍니다. 당신은 단지 하나 개의 수준이 이미지 컨테이너를하고자하는 경우, 당신은 내가 $ 깊이가 귀하의 경우 0 또는 1을 수 있는지 여부 확실하지 않다 if ($depth == $desired_level)

// Submenu walker to add image 
class submenu_walker extends Walker_Nav_Menu { 
    function start_lvl(&$output, $depth = 0, $args = array()) { 
     $indent = str_repeat("\t", $depth); 
     if ($depth == 0) { 
      global $description; 
      $output .= "<ul class='sub-menu'><li class='menu-image-container'><div class='menu-image'></div><div class='menu-description'>".$description."</div></li>"; 
     } else { 
      $output .= "<ul class='sub-menu'>"; 
     } 

    } 
    function end_lvl(&$output, $depth = 0, $args = array()) { 
     $indent = str_repeat("\t", $depth); 
     if ($depth == 0) { 
      $output .= "<li><div class='clear'></div></li></ul>"; 
     } else { 
      $output .= "</ul>"; 
     } 
    } 
} 

을 확인할 수 있습니다, 그것을 시도.

+0

그게 제가 시도한 것입니다. 그리고 그것이 바뀌는 것처럼 보이지만, 올바르지 않습니다. 내가 얻은 가장 가까운 것은 정확히 당신이 넣었던 것이지만 '얼굴', '귀', '눈'과 같은 주 하위 메뉴의 하위 메뉴를 제거합니다. 제목과 메뉴 링크는 어떻게됩니까? 모든 개인의 '리'아이템들 – Lee

+0

그 말은, 왜 그런지 깨달았습니다. 그러나 귀하의 의견은 실제로이 사실을 깨닫는데 도움이되었으므로 제 질문에 추가 부분을 추가하고 귀하의 의견을 수락 한 것으로 표시 할 것입니다. – Lee

+0

물론 당신은 옳습니다. 그에 따라 내 대답을 바로 잡을 것입니다. 고맙습니다. –