워드프레스 메뉴에 로그인/로그아웃 메뉴 항목을 추가하는 방법

워드프레스의 특정 메뉴 내비게이션에 로그인/로그아웃 메뉴를 항목을 추가하려는 경우에 다음과 같은 함수를 사용할 수 있습니다.

add_filter( 'wp_nav_menu_items', 'add_loginout_link', 10, 2 );
function add_loginout_link( $items, $args ) {
if (is_user_logged_in() && $args->theme_location == 'primary') {
$items .= '<li><a href="'. wp_logout_url() .'">로그아웃</a></li>';
}
elseif (!is_user_logged_in() && $args->theme_location == 'primary') {
$items .= '<li><a href="'. site_url('wp-login.php') .'">로그인</a></li>';
}
return $items;
}

위의 함수를 사용하면 로그아웃 사용자에게는 "로그인" 메뉴 항목이 표시되고, 로그인 사용자에게는 "로그아웃" 메뉴 항목이 표시됩니다. 위에서 theme_location 파라미터의 값을 해당 내비게이션에 맞게 수정하도록 합니다(예: main, secondary).

위의 코드는 사용 중인 테마의 함수 파일(functions.php)에 추가해주면 됩니다. 자세한 방법은 여기를 참고해보세요.

위의 방법은 플러그인을 사용하지 않고 할 수 있는 장점이 있지만, 초보자에게는 어려울 수 있습니다. 이 경우 플러그인을 사용하여 로그인하면 메뉴가 로그아웃으로 자동으로 바뀌도록 하는 방법도 가능합니다. 자세한 내용은 로그인하면 로그인 메뉴가 로그아웃 메뉴로 바뀌도록 하기 글을 참고해보시기 바랍니다.



11 thoughts on “워드프레스 메뉴에 로그인/로그아웃 메뉴 항목을 추가하는 방법”

  1. 안녕하세요^^
    theme_location 값을 확인하려면 어디에서 할 수 있는지요...?
    primary, secondary, main, 기본메뉴...어떤걸 입력해도 메뉴에 반영이 안되네요...
    https://uploads.disquscdn.com/images/dedb2c9f675d1373670985ad3cb4536ab61db20168b3e4e26aaf3b511e8e5bdb.png

    응답
    • 안녕하세요?

      블로그를 방문해주셔서 감사합니다.

      Enfold 테마( https://www.thewordcracker.com/go/enfold )를 사용하고 계시네요.
      Enfold 테마를 살펴보니, 아마 다음 중 하나 같습니다.

      - avia
      - avia1
      - avia2
      - avia3

      한번 테스트해보시고 잘 되는지 확인해보시기 바랍니다.

      응답
  2. 사용하는 테마의 functions.php에 위 코드를 삽입하고 로케이션 파라미터 값을 넣어줬는데 아무것도 뜨지않습니다.ㅠㅠ제가 잘 몰라서 그러는데 추가적으로 해줘야 할게 또 있나요?

    응답
    • 안녕하세요?

      혹시 오류가 발생하는건가요?

      오류가 발생하는 경우는 함수 파일에 제대로 넣지 않아서 이거나 문법적으로 오류가 발생했을 수 있습니다.

      오류는 발생하지 않고 메뉴에 아무런 변동이 없다면, 우선 캐시를 삭제해보고, 

      위의 코드에서 아래 부분(두 군데)을 삭제해보시고 테스트해보시기 바랍니다.

      && $args->theme_location == 'primary'

      만약 메뉴에 제대로 추가된다고 한다면 theme_location이 잘못된 것입니다.

      응답
      •  theme_location이 잘못되었던게 맞네요.저는 외모-메뉴에서 탑메뉴바를 top_menu로 만들었다고해서 location에 top_menu넣어줬는데  secondary로 넣어야하는 거군요. 주메뉴는 primary구요. 이제 알았네요. 감사합니다. 

    • 안녕하세요?
      제 개인 블로그를 방문주셔서 감사합니다.
      사용 중인 테마의 함수 파일에 추가해주시면 됩니다.
      FTP를 사용하시기 바랍니다.

      응답

Leave a Comment