Ultimate Member 플러그인에서 로그인 후 현재 페이지로 리디렉션시키기
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은 적절히 수정하도록 합니다.
이 코드를 적용하면 로그인/로그아웃 후 현재 페이지를 벗어나지 않게 됩니다. 테마에 따라 잘 작동하지 않을 수도 있습니다. 저는 아바다 테마에서 테스트해보니 잘 작동하네요.