WordPress에 로그인하지 않은 경우 사용자를 리디렉션하는 방법 » 페이지 리디렉션

게시 됨: 2022-01-02

WordPress에 로그인하지 않은 경우 리디렉션하는 방법 지난 포스팅에서 사용자가 워드프레스에 로그인했는지 확인하는 방법을 설명했습니다. WordPress 사용자가 로그인되어 있는지 확인하려는 일반적인 이유 중 하나는 WordPress 사용자의 로그인 상태에 따라 다른 페이지를 표시하기 위해서입니다. WordPress에 로그인하지 않은 경우 사용자를 리디렉션하려는 경우 이 빠른 자습서에서 볼 수 있는 것처럼 functions.php 파일에 코드 스니펫을 추가하여 이를 수행할 수 있습니다.

WordPress에서 사용자를 리디렉션하는 이유는 무엇입니까?

사용자 리디렉션은 대부분의 WordPress 사이트에서 중요한 요구 사항입니다. 사용자를 한 페이지에서 다른 페이지로 리디렉션하려는 경우가 있습니다. 예를 들어 체크아웃 후 WooCommerce 사용자를 리디렉션하거나 등록 또는 웹사이트에 로그인을 리디렉션한 후 사용자를 리디렉션할 수 있습니다.

WordPress에 로그인하지 않은 경우 리디렉션하는 것은 가장 일반적인 리디렉션 중 하나입니다. WordPress에서 리디렉션을 관리하는 데 도움이 되는 플러그인이 있지만 이 문제를 해결하는 작은 스니펫을 추가하는 것이 타사 플러그인에 의존하는 것보다 더 나은 솔루션입니다.

이 자습서에서는 선택한 페이지에 로그인하지 않은 사용자를 위한 리디렉션을 생성하는 스니펫을 테마 또는 플러그인에 추가하는 방법을 보여줍니다.

WordPress에 로그인하지 않은 경우 리디렉션하는 단계

WordPress에 로그인하지 않은 경우 리디렉션을 구현하려면 다음 단계를 따라야 합니다.

  1. WordPress 사이트에 로그인 하고 기본 대시보드 메뉴의 모양 메뉴에서 테마 편집기로 이동합니다.
  2. 활성 WordPress 테마 의 functions.php 파일을 엽니다 . CPanel 또는 FTP를 사용하여 활성 테마 functions.php 파일에 액세스할 수도 있습니다. 이 경로에 있습니다 - wp-root-installation/wp-content/themes/active-theme/functions.php
  3. 관리자 초기화 후크( admin_init ) 에 후크하는 작업 후크를 만듭니다 (예: add_action('init', 'redirect_if_not_logged_in') . 이 후크에는 사용자가 WordPress에 로그인했는지 확인하고 로그인하지 않은 경우 원하는 페이지로 리디렉션되는 논리를 포함하는 콜백 함수가 있습니다.
  4. 위에서 언급한 대로 콜백 함수를 만들고 그에 따라 코드를 추가합니다.
  5. 변경 사항을 저장하고 프런트엔드로 이동하여 로그인하지 않은 사용자가 코드에 추가한 페이지로 리디렉션되는지 테스트합니다.

사용자가 WordPress에 로그인하지 않은 경우 리디렉션을 추가하는 방법을 보여 드리겠습니다. 나는 localhost 설치에서 기본 WordPress 테마를 사용할 것이지만 이것은 테마와 호스팅 환경에 관계없이 다른 모든 사이트에서 작동할 수 있습니다.

리디렉션을 추가하는 코드는 대부분의 경우 로그인하지 않은 사용자의 콘텐츠를 제한하려는 경우 두 가지 조건을 확인하는 것과 같은 다른 조건을 취할 수도 있습니다.

  • 사용자가 로그인한 경우
  • 사용자가 제한된 콘텐츠가 있는 페이지에 있는 경우

이러한 조건이 충족되면 wp_redirect() 함수를 사용하여 사용자를 선택한 페이지로 리디렉션해야 합니다.

WP 함수 : wp_redirect()

테마 및 플러그인에서 사용자를 리디렉션하는 데 사용할 수 있는 WordPress 리디렉션 기능입니다. 이 함수의 일반적인 표현은 다음과 같습니다.

wp_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' )

보시다시피 함수에는 다음과 같은 세 개의 매개변수가 있습니다.

매개변수 설명
$location 사용자를 리디렉션하려는 URL입니다. 사용자가 로그인하지 않은 상태에서 이 기능을 사용하는 경우 코드 샘플에서 볼 수 있는 것처럼 사용자를 리디렉션할 페이지의 URL을 제공해야 합니다.
$status 이것은 선택적 매개변수이며 자주 사용되지 않을 수 있지만 사용할 HTTP 응답 상태 코드입니다. 기본값은 '302'이며 영구 리디렉션에 301을 사용할 수 있습니다. 301 리디렉션 옵션과 함께 이 매개변수를 사용할 때 주의하십시오.
$x_redirect_by 이것은 단순히 리디렉션을 적용하는 응용 프로그램이며 WordPress의 기본값은 거의 변경되지 않습니다.

사용자가 로그인하지 않은 경우 템플릿 리디렉션 작업

WordPress에 로그인하지 않은 사용자를 리디렉션하려면 사용자가 다음과 같이 로그인한 경우 조건부 확인과 함께 wp_redirect 기능을 사용할 수 있습니다.

 add_action( 'template_redirect', 'redirect_if_user_not_logged_in' );

함수 redirect_if_user_not_logged_in() {

	if ( is_page('slug || ID') && ! is_user_logged_in() ) { //예제는 is_page(23)일 수 있습니다. 여기서 23은 페이지 ID입니다.

		wp_redirect( 'http://귀하의 리디렉션 페이지-여기 '); 
 
     exit;// wp_redirect()가 출구를 갖는 것이 매우 중요하므로 이 출구를 절대 잊지 마십시오.
   
   }
   
}

조건부 검사의 슬러그를 해당 페이지로 교체하고 위의 코드에서 리디렉션 URL도 교체하고 functions.php에 추가하여 해당 페이지 URL에 로그인하지 않은 사용자를 리디렉션합니다.

사용자가 로그인하지 않은 경우 관리자 초기화 리디렉션 작업

또는 template_redirect 대신 admin_init 를 연결하여 WordPress에 로그인하지 않은 경우 사용자를 리디렉션할 수 있습니다.

액션 훅을 추가하는 부분을 제외하고 코드는 동일해야 합니다. 코드는 다음과 같아야 합니다.

 add_action( 'admin_init', 'redirect_if_user_not_logged_in' );

함수 redirect_if_user_not_logged_in() {

if ( !is_user_logged_in() && is_page('slug') ) {

      wp_redirect( 'http://귀하의 리디렉션 페이지-여기 '); 
   
   출구;
   }
}

이 코드를 기본 WordPress 테마 functions.php에 추가하고 리디렉션을 생성하려는 페이지의 슬러그와 대상 URL을 추가하면 다음과 같이 완벽하게 작동합니다.

WordPress에 로그인하지 않은 경우 리디렉션하는 방법

마지막 생각들

사용자가 WordPress에 로그인하지 않은 경우 리디렉션을 생성하려면 먼저 해당 게시물에서 공유한 코드를 사용하여 사용자가 로그인했는지 확인한 다음 wp_redirect() 함수를 사용하여 사용자가 있어야 할 새 대상을 추가해야 합니다. 특정 페이지 또는 게시물에 액세스하면 리디렉션됩니다.

이 코드는 테마의 functions.php 파일에 추가하거나 사용자 정의 WordPress 플러그인의 일부로 사용할 수 있습니다. 항상 기억하는 것이 중요합니다. wp_redirect 기능을 사용할 때 이 기능은 자동으로 종료되지 않기 때문에 종료를 추가하는 것을 잊지 말아야 합니다.

WordPress 플러그인 개발자는 $location 매개변수 호스트가 허용되는지 확인하기 때문에 더 나은 리디렉션 방법을 제공하는 다른 WordPress 리디렉션 플러그인 wp_safe_redirect()를 고려할 수도 있습니다.

유사한 기사