워드프레스 사이트에서 로그인 시 직전 페이지로 되돌아가기를 원할 수 있습니다. 몇 가지 방법으로 로그인 후 이전 페이지로 리디렉션시켜 현재 페이지를 벗어나지 않도록 할 수 있습니다.
아래에서 제시하는 사용자 코드를 사용하거나 LoginWP와 같은 플러그인을 사용하여 로그인 후 이전 페이지로 이동시킬 수 있습니다. 특히 LoginWP 플러그인은 로그인 및 로그아웃 후 리디레션될 URL을 세부적으로 설정이 가능합니다.
코드를 사용하여 워드프레스에서 로그인 후 이전 페이지로 리디렉션시키기
모든 사용자에 대하여 로그인 후 이전 페이지로 이동시키기를 원하는 경우 다음 코드를 차일드 테마의 함수 파일에 추가할 수 있습니다.
/**
* Redirect users to the previous page after login if no specific redirect is requested.
*
* @param string $redirect_to
* @param string $requested_redirect_to
* @param WP_User|WP_Error $user
* @return string
*/
function redirect_to_previous_page_after_login( $redirect_to, $requested_redirect_to, $user ) {
if ( ! $requested_redirect_to ) {
$referrer = wp_get_referer();
// Ensure the referrer is not a variation of the wp-login or wp-admin page.
if ( $referrer && strpos( $referrer, 'wp-login' ) === false && strpos( $referrer, 'wp-admin' ) === false ) {
$redirect_to = wp_validate_redirect( $referrer, $redirect_to );
}
}
return $redirect_to;
}
add_filter( 'login_redirect', 'redirect_to_previous_page_after_login', 10, 3 );
아바다 테마 등 일부 테마에서 테스트하니 잘 작동했습니다. 혹시 원하는 대로 작동하지 않는 경우 아래 댓글을 통해 사용 중인 테마와 증상에 대하여 자세히 알려주시면 시간이 될 때 살펴보고 코드 수정이 필요할 경우 수정하도록 하겠습니다.
LoginWP 플러그인을 사용하여 로그인/로그아웃 후 리디렉션 설정하기
로그인/로그아웃 후 리디렉션될 페이지를 상세하게 설정하는 플러그인으로 Peter's Login Redirect라는 플러그인이 있었습니다. 이 플러그인은 한동안 업데이트가 안 되고 방치되었지만, LoginWP라는 명칭으로 바꾸면서 다시 활발히 업데이트가 되고 있습니다.
플러그인 » 새 플러그인 추가에서 LoginWP를 검색하여 LoginWP (Formerly Peter's Login Redirect) 플러그인을 설치할 수 있습니다.

이 플러그인을 설치하고 활성화하면 워드프레스 관리자 페이지의 왼쪽 메뉴에 LoginWP가 생성됩니다. LoginWP » Redirection Rules 페이지로 이동하여 리디렉션 규칙을 설정할 수 있습니다.

로그인 및 로그아웃 후에 이전 페이지로 이동시키고 싶은 경우 Login URL과 Logout URL에 {{previous_page}}를 입력하고 Save Changes 버튼을 클릭합니다. (로그인 후 또는 로그아웃 후에 특정 URL로 리디렉션키고 싶은 경우에는 해당 필드에 원하는 URL을 입력하면 됩니다.)

하지만 살펴보니 로그인 후 현재 페이지로 리디렉션시키는 기능은 LoginWP Pro 버전에서만 지원되는 것 같습니다.

특정 사용자에 대한 리디렉션 규칙 설정하기
LoginWP 플러그인을 사용하면 특정 사용자 또는 사용자 역할에 대하여 다른 리디렉션 규칙을 설정할 수 있습니다.
Redirection Rules의 오른쪽에 있는 Add New 버튼을 클릭하여 새로운 리다이렉트 규칙을 추가할 수 있습니다.

Rule Condition에서 Username 또는 User Role, 혹은 User Capability를 클릭하여 특정 사용자 또는 특정 사용자 역할을 지정할 수 있습니다.

관리자와 일반 사용자가 로그인 시 다른 페이지로 리디렉션시키고 싶을 때 이 기능을 사용할 수 있습니다.
Username을 선택하면 특정 사용자를 지정할 수 있습니다.

User Role을 선택할 경우 특정 사용자 역할(예: 관리자, 편집자, 글쓴이, 기여자, 구독자, 고객, 상점 관리자 등)을 선택할 수 있습니다.

User Capability를 선택하면 사용자의 권한에 따라 다르게 리디렉션 규칙을 설정할 수 있습니다.

LoginWP Pro에서 사용할 수 있는 추가적인 리디렉션 조건
LoginWP 유료 버전에서는 다음과 같은 조건이 추가적으로 지원됩니다.
- 최초 로그인 후: 사용자가 처음으로 로그인할 때만 특정 URL로 리디렉션
- 우커머스: 구매한 상품, 구매한 제품 카테고리, 활성 사용자 구독, 활성 멤버십 플랜
- LearnDash: 등록된 코스, 사용자 그룹
- LifterLMS: 등록된 코스, 등록된 멤버십
- TutorLMS: 등록된 코스
- LearnPress: 등록된 코스
- ProfilePress: 구독한 멤버십 플랜
- MemberPress: 구독한 멤버십
- Restrict Content Pro: 활성 멤버십 레벨
- Paid Memberships Pro: 구독한 멤버십 레벨
- WishList Member: 구독한 멤버십 레벨
- WPML: 사이트의 현재 언어
- Polylang: 사이트의 현재 언어
직접 페이지 등에 코드를 추가하는 경우
특정 페이지 또는 글에서 로그인 링크를 누르고 로그인 페이지에서 로그인 정보를 입력했을 때 해당 페이지 또는 글로 되돌아가기를 원할 수 있습니다. 이 경우 다음과 같은 형식으로 로그인 링크를 걸어주면 됩니다.
<a href="<?php echo wp_login_url( get_permalink() ); ?>" title="로그인">로그인</a>
홈페이지로 리디렉션시키려면:
<a href="<?php echo wp_login_url( home_url() ); ?>" title="로그인">로그인</a>
코드를 사용합니다. wp_login_url 템플릿 태그는 사용자가 사이트에 로그인할 수 있는 URL을 반환합니다. 자세한 내용은 WordPress Codex 페이지를 참고하시기 바랍니다. 어떤 이유로, 간혹 플러그인 충돌 등으로 인해 위의 코드가 제대로 먹히지 않으면 login_redirect 필터를 통해 리디렉션할 대상을 지정할 수 있습니다.
댓글 남기기