Ultimate Member 플러그인에서 로그인 후 현재 페이지로 리디렉션시키기

Last Updated: 2017년 12월 12일 15개 댓글

Ultimate Member 플러그인에서 로그인 후 현재 페이지(로그인 페이지로 이동하기 전 페이지)로 리디렉션시키기

Ultimate Member는 워드프레스 프로필 및 멤버십 플러그인으로 현재 8만 개 이상의 사이트에 설치되어 사용되고 있습니다. 무료 멤버십 플러그인으로 WP-Members가 유명하지만 최근에는 Ultimate Member도 많이 사용되는 것 같습니다.

Ultimate Member는 무료 멤버십 플러그인이지만 (유료) 인스텐션을 통해 기능을 확장할 수 있습니다.

이 플러그인을 설치하고 활성화하면 다음과 같은 7개 페이지가 강제로 생성되고 삭제할 수 없게 됩니다.

  • Register (회원가입)
  • Login (로그인)
  • User (사용자)
  • Members (회원)
  • Account (계정)
  • Logout (로그아웃)
  • Password Reset (비밀번호 초기화)

워드프레스 관리자 페이지에서 Ultimate Member > User Roles에서 회원이 회원가입하거나 로그인할 때 이동할 URL을 지정할 수 있습니다.


특히 Login Options에서 Action to be taken after login으로 다음과 같은 옵션을 지정할 수 있습니다.

  • Redirect to profile (프로필 페이지로 이동)
  • Redirect to URL (특정 URL로 이동)
  • Refresh active page (활성 페이지 새로 고침)
  • Redirect to WordPress Admin (워드프레스 관리자 페이지로 이동)

이 중에서 Refresh active page를 선택하면 Account 페이지로 이동하게 됩니다. 아마 대부분의 사용자들이 이 옵션을 로그인 페이지로 진입하기 직전의 페이지로 이동하지 않을까 예상했을 것입니다.

만약 로그인 링크를 누르기 전에 있었던 페이지로 이동하려는 경우에는 다음과 같은 코드를 사용할 수 있습니다.

// Add Login and Logout menu items to menu whose menu name (theme_location) is 'primary'
// Redirects to current page after login/logout

add_filter( 'wp_nav_menu_items', 'wti_loginout_menu_link', 10, 2 );

function wti_loginout_menu_link( $items, $args ) {
if ($args->theme_location == 'primary') {
if (is_user_logged_in()) {
$items .= '<li class="right"><a href="'. wp_logout_url( get_permalink() ) .'">Logout</a></li>'; // 로그아웃
} else {
$items .= '<li class="right"><a href="'. wp_login_url(get_permalink()) .'">Login</a></li>'; // 로그인
}
}
return $items;
}

위의 코드에서 theme_location은 적절히 수정하도록 합니다.

이 코드를 적용하면 로그인/로그아웃 후 현재 페이지를 벗어나지 않게 됩니다. 테마에 따라 잘 작동하지 않을 수도 있습니다. 저는 아바다 테마에서 테스트해보니 잘 작동하네요.

참고:


15 개 댓글

Leave a Comment

  1. 왜 Ultimate Member에 리다이렉트 기능이 없는지 좀 의아했지만, Ultimate Member - Korea 플러그인에 해당 기능을 넣었습니다.
    UserPro는 정말 비추입니다. 다 되는 것 같은 데, 실제로 써보면 무겁고 커스텀이 불가능합니다. TT.
    아웃스탠딩의 경우 시간과 비용을 감수하고, UserPro에서 Ultimate Member로 모두 마이그레이션했습니다.

    응답
  2. 여기 ultimate member 플러그인에서 색상 조정은 안될까요?? 버튼 색이나 전체적인 색이 화이트 앤 블루 인데 이거를 만들어진 홈페이지와 어울리게 색을 바꾸고 싶어서요 ㅠ 아무리 찾아도 없네요

    응답
  3. 챠일드 테마 functions.php에 위 코드를 삽인한 후, theme location을 바꿨는데, 잘 작동이 안되네요..
    theme location을 잘 못넣은 것 같은데, 제 테마에서 어떻게 확인할 수 있을까요?

    응답
  4. 안녕하세요. ultimate member를 이제 갓 사용하려합니다. 로그인 시 현재페이지로 로그인하는 코드를 찾고 있는데. 위에 예로 든 코드는... 맞나요? 잘못 붙이신거 아닌지..? 위 코드는 primary 위치의 메뉴에서 로그인유저에게는 로그아웃을, 로그아웃 유저에게는 로그인을 표시하는 코드인것 같습니다.

    응답
    • 메뉴에서 로그인을 클릭하여 로그인 정보를 입력하면 로그인 후 직전 페이지로 이동하게 됩니다.

      Ultimate Member 플러그인에서 Refresh active page 옵션을 선택하면 로그인 후에 직전 페이지로 이동해야 할 것 같지만, 버그 때문인지 Account 페이지로 이동합니다. (지금은 버그가 수정되었는지 모르겠습니다.)

      현재로서는 위에 제시된 코드를 사용하여 메뉴의 로그인 버튼을 클릭했을 때 직전 페이지(이전 페이지)로 이동시키는 것이 최선 같습니다.

      응답
  5. 안녕하세요.
    저번에 도와주신 덕분에 차질 없이 홈페이지 운영을 하고 있네요.
    다시 한번 감사합니다. 꾸벅

    오늘은 얼티메이트 멤버 관련해서 여쭤볼게 있습니다.
    홈페이지에서 보안적? 문제가 있다고 해서요. 엘티메이트 멤버 사용자 디렉터가 노출되고 있다고해서요. 이거 설정을 어찌해야 하나요? 이런식으로 방법을 찾았는데, 도저히 이해가 안되서 여쭤봅니다.

    1. 프로파일 또는 유저를 지워야 한다고 하고, 멤버스 페이지는 얼티메이트에서 지정해놓은 상태에서 숏코드를 삭제한 뒤, 보조적으로 얼티메이트에서 볼 수 있는 권한을 막으라고 합니다.

    : 개설된 페이지를 삭제하라는 이야기인지, 얼티메이트에서 설정된 무엇가를 삭제하라는 이야기인지...감도 안오네요 ㅠㅠ

    2. 프로필 페이지는 있어야 하니까 숏코드만 넣어놓고 얼티메이트에서 막으라고 합니다.

    : 숏코드만 넣고 삭제하라는 게...뭔 뜻인지ㅠㅠ

    3. SEO 플러그인 로봇TXT 파일로 해당 페이지(멤버스와 프로파일)을 막으라고 합니다.

    : ALL IN ONE SEO 플러그인을 사용하고 있는데 거기서 설정하라는 이야기 인가요?ㅠㅠ

    제가 아직 미흡해서 설명조차도 이해하기 힘들게 한거 같네요... ㅠㅠ 그래도 우선 답변 기다리고 있겠습니다. 좋은 하루 보내세요!!!!

    응답