코스모스팜 회원관리 이용해 회원관리 항목을 Drop down 메뉴로 구성하기

코스모스팜 회원관리 플러그인을 사용하면서 메뉴에 사용자가 수동으로 회원 관리 관련 메뉴를 추가하는 방법에 대해서 아래와 같이 답변을 주셨습니다.

"코스모스팜 회원관리 플러그인에서

메뉴에 로그인 링크 추가 기능은 wp_get_nav_menu_items 필터를 활용하고 있습니다.

아래 링크의 2번 내용을 참고해서 활용해보시겠어요?"

https://www.cosmosfarm.com/threads/document/24906#document-answer-25098

이러한 가이드에 따라 회원, 로그인, 로그아웃, 회원가입, 회원관리라는 다섯개의 사용자정의 링크를 활용한 메뉴 체계를 추가했습니다.
말씀하신대로 회원 아래에 로그인, 로그아웃, 회원가입, 회원관리가 서브 메뉴로 나타나도록 말입니다.

이는 제대로 성공하긴 했는데요. https://puripia.com

조금 더 욕심이 생겨서요. 

메뉴 상위에 처음에 로그인을 맨위로 올리고 하부를 로그아웃, 회원가입, 회원관리로 놓으면
로그인 전에는 당근 로그인이 보이고, 로그인 후에는 로그아웃이 보이게 되면 좋을 것 같은데요.

알려주신 코드를 그대로 적용하고 메뉴 구성만 위와 같이하면 작용할까요?
아니면 코드르 조금 수정해야 할까요?

어떤 접근이 좋을 지 조언부탁드립니다.

감사합니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    올려주신 페이지 주소로 확인해보니

    현재 비로그인 상태에서 로그인, 회원가입 메뉴만 표시되고 있습니다.

    올려주신 링크의 코드를 적용하시면

    비로그인 상태에서는 로그인, 회원가입 메뉴가 표시되고

    로그인 상태에서는 로그아웃, 회원정보 메뉴가 표시됩니다.

     

    글만으로는 어떻게 하고 싶으신지 이해가 잘 되지 않습니다.

    어떻게 하시려는지 이미지 사진을 imgur에 업로드한 뒤 링크 걸어주시겠어요?

    고맙습니다.

  • 안녕하세요?

     

    비로그인상태에서는 주 메뉴에 로그인이 나오고 그 하위 메뉴로 회원 가입이 나오니 원하는 목적과 같습니다.

     

    그러나 로그인 시는 주 메뉴에 로그아웃과 회원정보가 동시에 나오는 상태인데요. 이를 주 메뉴에는 로그아웃만 나오고 화원정보는 서브 메뉴에 나오도록 했으면 하는 것입니다.

    지난번에 알려주신 코드 어디를 손을 보면 좋은지 솔직히 잘 안되더군요. 

     

    /*
     * 회원관련 서브메뉴 만들기
     */

    add_filter('wp_get_nav_menu_items', 'my_wp_get_nav_menu_items', 10, 3);
    function my_wp_get_nav_menu_items($items, $menu, $args){
        if(!is_admin()){
            foreach($items as $index=>$menu){
                if($menu->title == '회원정보'){
                    $menu->url = get_cosmosfarm_members_profile_url();
                    if(!is_user_logged_in()) unset($items[$index]);
                }
                else if($menu->title == '로그아웃'){
                    $menu->url = get_cosmosfarm_members_logout_url();
                    if(!is_user_logged_in()) unset($items[$index]);
                }
                else if($menu->title == '로그인'){
                    $menu->url = get_cosmosfarm_members_login_url();
                    if(is_user_logged_in()) unset($items[$index]);
                }
                else if($menu->title == '회원가입'){
                    $menu->url = wp_registration_url();
                    if(is_user_logged_in()) unset($items[$index]);
                }
            }
        }
        
        return $items;
    }

  • 안녕하세요.

    코드는 수정하지 않으셔도 될 듯합니다.

    워드프레스 메뉴 설정을 변경해보시겠어요?

    회원, 로그인, 회원가입, 로그아웃, 회원정보 메뉴를 만드신 후

    회원 메뉴에 다른 메뉴를 하위 메뉴로 설정하셨다면

    로그인 메뉴에는 회원가입 메뉴를 하위 메뉴로 설정하시고

    로그아웃 메뉴에는 회원정보 메뉴를 하위 메뉴로 설정해서 확인해보시겠어요?

     

    워드프레스 메뉴 설정은

    워드프레스 관리자 -> 외모 -> 메뉴 -> 메뉴 편집하기 탭에서 하실 수 있습니다.

    고맙습니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기