들어가며
워드프레스로 만든 사이트에서 홈페이지 접속 시 특정 페이지, 특정 URL 또는 특정 카테고리 등으로 리디렉션시키고자 하는 경우가 발생할 수 있습니다.
여러 가지 방법이 가능합니다. 직접 header.php 파일에 리디렉션 코드를 삽입하는 것도 생각해볼 수 있습니다. 여기서는 template_redirect 후크를 사용하여 리다이렉션시키는 방법을 생각해보겠습니다. 이 방법을 사용하면 테마 소스 파일을 수정하지 않아도 됩니다.
특정 페이지로 리디렉션시키기
우선 페이지인 경우에는 설정 > 읽기에서 전면 페이지 표시를 정적인 페이지로 설정하여 간단히 해결할 수 있습니다.
특정 카테고리로 리디렉션시키기
홈페이지에 접속했을 때 특정 카테고리가 표시되도록 하고 싶은 경우 template_redirect 액션을 사용할 수 있습니다. 기본적인 사용법은 다음과 같습니다. (template_redirect 액션에 대한 자세한 내용은 WordPress Codex 문서를 참고하세요.)
function my_page_template_redirect() { if( is_page( 'goodies' ) && ! is_user_logged_in() ) // 'goodies' 페이지에 게스트가 접속하는 경우 { wp_redirect( home_url( '/signup/' ) ); // 가입 페이지로 리디렉션시킵니다 exit(); } } add_action( 'template_redirect', 'my_page_template_redirect' );
위의 코드를 응용하여 특정 카테고리로 리디렉션시키려면:
function my_category_template_redirect() { if( is_home() || is_front_page() ) // 홈 또는 전면 페이지에 접속하는경우 { $category_link = get_category_link( 14 ); // 카테고리 ID 14 wp_redirect( $category_link ); // 위에서 지정한 카테고리로 리디렉션시킴 exit(); } } add_action( 'template_redirect', 'my_category_template_redirect' );
위와 같은 코드를 사용 중인 테마의 함수 파일(functions.php)에 추가하도록 합니다. 함수 파일에 코드를 추가하는 방법은 이 글을 참고해보세요.
특정 URL로 리디렉션시키기
특정 URL로 리디렉션시키는 것도 가능합니다. 이 경우 기본적으로 위의 코드를 사용합니다. 가령 구글로 이동시키려는 경우:
function my_homeexternal_template_redirect() { if( is_home() || is_front_page() ) { $external_link = 'https://www.google.com'; // 구글 URL wp_redirect( $external_link ); // 위에서 지정한 특정 URL로 리디렉션 exit(); } } add_action( 'template_redirect', 'my_homeexternal_template_redirect' );
구글 URL 대신 원하는 URL로 대체하도록 합니다. 원하는 경우 조건문을 변경하여 다양하게 응용할 수 있습니다.
댓글 남기기