답변:
다음은 특정 요구에 맞게 작동하도록 약간 수정해야하는 두 가지 예입니다.
add_action( 'admin_init', 'redirect_non_logged_users_to_specific_page' );
function redirect_non_logged_users_to_specific_page() {
if ( !is_user_logged_in() && is_page('add page slug or ID here') && $_SERVER['PHP_SELF'] != '/wp-admin/admin-ajax.php' ) {
wp_redirect( 'http://www.example.dev/page/' );
exit;
}
}
이것을 하위 테마 기능 파일에 넣고 페이지 ID 또는 슬러그 및 리디렉션 URL을 변경하십시오.
다음과 같은 코드를 사용할 수도 있습니다.
add_action( 'template_redirect', 'redirect_to_specific_page' );
function redirect_to_specific_page() {
if ( is_page('slug') && ! is_user_logged_in() ) {
wp_redirect( 'http://www.example.dev/your-page/', 301 );
exit;
}
}
메시지를 페이지에 직접 추가하거나 로그인하지 않은 모든 사용자에 대한 메시지를 표시 하려면 코드에 추가하십시오 .
이것은 더 나을 것입니다 :
if ( !is_user_logged_in() ) {
auth_redirect();
}
// continue as normal for authenticated users
이것이하는 일은 사용자를 로그인 페이지로 리디렉션하는 것입니다. 로그인하면 사용자는 처음에 액세스하려는 보안 페이지로 다시 리디렉션됩니다.
여기에 설명서 :
https://codex.wordpress.org/Function_Reference/auth_redirect
무엇을 어디에 표시하고 싶은지 알려주지 않으면 어떻게 넣을 수 있습니까? 전체 게시물? 페이지? 페이지의 사용자 정의 부분? 죄송합니다. 오늘 수정 구슬이 제대로 작동하지 않는 것 같습니다.
당신이 있기 때문에, 나는 당신에게 인용 : "워드 프레스에 초보자"당신은 직접 대답을 요청하는 것보다 오히려 배워야합니다.
참조 1 링크를 읽어야 할 곳 은 어디 입니까? 어떤 파일을 넣어야하는지 알려줍니다.
이를 수행 하는 방법 에 대해서는 먼저 참조 링크 2와 3을 읽어야합니다.
전반적으로 다음과 같이 보일 것입니다.
if ( is_user_logged_in() ) {
the_content();
} else {
echo 'For members only';
}
물론 위의 코드는 루프 로 들어가야합니다 . 원하는만큼 복잡하거나 간단하게 만들 수 있습니다. 예를 들어, 로그인하지 않은 경우 간단한 텍스트 대신 전체 가입 양식을 표시하거나 사용자가 로그인 할 수있는 (분할 수는 있지만 로그인을 잊었 기 때문에) 사용자가 로그인 할 수있는 분할 된 화면을 표시 할 수 있습니다. (없는 경우).
아래에 댓글 후에 추가 :
-를 다시 사용 header하여 경로 를 재 지정하려면 wp_login_url아래의 참조 1 및 2를 확인하십시오.
if ( is_user_logged_in() ) {
the_content();
} else {
header('Location: ' . wp_login_url());
}
참고:
$pagenow? 당신은 대포로 비행을 죽이려고 노력하고 있지만 왜 그렇게 복잡할까요? 간단하게 유지하십시오. PS2 : PHP와 WP Codex를 배우십시오.
특정 페이지로 리디렉션 할 수 없지만 로그인하지 않은 모든 사용자는 로그인 화면으로 리디렉션됩니다.
<?php auth_redirect(); ?>
워드 프레스 참조 : auth_redirect()
다른 해결책을 언급하십시오.
add_action('template_redirect', 'redirect_to_specific_page'); function redirect_to_specific_page() { if ( is_page('http://mydomain.com/participate') && !is_user_logged_in()) { wp_redirect('http://mydomain.com/login', 301); exit; } }하지만 작동하지 않습니다