워드프레스에서 로그인 후 이전 페이지로 리디렉션시키기

Last Updated: 2024년 10월 20일 댓글

워드프레스 사이트에서 로그인 시 직전 페이지로 되돌아가기를 원할 수 있습니다. 몇 가지 방법으로 로그인 후 이전 페이지로 리디렉션시켜 현재 페이지를 벗어나지 않도록 할 수 있습니다.

아래에서 제시하는 사용자 코드를 사용하거나 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 필터를 통해 리디렉션할 대상을 지정할 수 있습니다.

참고:

작성자 아바타

워드크래커는 전문 영한번역가로 활동하고 있으며 10년 이상 워드프레스 관련 정보를 제공하는 워드프레스 정보꾸러미 블로그를 운영하고 있다. 또한, ‘워드프레스를 사용하는 사람들’ 네이버 카페도 관리하고 있다.

댓글 남기기

Leave a Comment

카카오톡 상담 카톡 서비스 상담