2016-07-24 2 views
5

특정 사용자의 페이지를 만들었습니다. 그의 사용자 이름이 John이라고 가정 해 봅시다. 'John'만 해당 페이지에 액세스하도록 허용하고 'John'이외의 다른 사용자 이름을 가진 사용자가 페이지에 액세스하려고하면 다른 페이지로 리디렉션되는 PHP 스크립트를 찾고 있습니다.특정 사용자가 아닌 경우 리디렉션

저는 PHP에 익숙하지 않으므로 약간의 코드를 시도해 보았습니다. 그러나 모든 사용자, 사용자 이름으로도 사용자를 리디렉션 '존'

<?php $user_info = get_userdata(1); 
    $username = $user_info->user_login; 
if ($username=='John') { 
echo ''; 
} else { 
wp_redirect(home_url()); 
exit; 
} 
?> 

여기에 유저 데이터 얻을 수있는 매개 변수를 사용하여 워드 프레스 페이지의 - https://codex.wordpress.org/Function_Reference/get_userdata

+0

사용자 이름 'John'또는 'john'입니까? – Panda

+0

@luweiqi It 's 'John' – user6176114

+0

@luweiqi 응답이 작동하면 – Panda

답변

2

에서

add_action('init', 'blockusers_init'); 
function blockusers_init() { 
    global $current_user; 
    $current_user = wp_get_current_user(); 
    if ('John' == $current_user->user_login) { 
    //your desire page url 
    wp_redirect('your page url'); 
    exit; 
    } else { 
    wp_redirect(home_url()); 
    exit; 
    } 
} 

테이크 참조.

global $current_user; 
get_currentuserinfo(); 
$username = $current_user->user_login; 

if ($username == 'John') { 
    echo ''; 
} else { 
    wp_redirect(home_url()); 
    exit; 
} 
+0

모든 사용자가 리디렉션됩니다. 내가 두 번 확인하고 사용자 이름 "존"과 함께 사용자가 너무 리디렉션지고있다! – user6176114

+0

@ user6176114'$ username' 변수를 에코하려고합니다. – Panda

+0

$ username을 에코하려고했는데 'John'이 표시됩니다. 따라서 사용자 이름이 정확합니다. – user6176114

1

이이 문제를 해결할 수 있습니다. 대신 wp_get_current_user() 기능을 사용할 수 있습니다

add_action('init', 'blockusers_init'); 
function blockusers_init() { 
    if (is_admin() && ! current_user_can('administrator') && 
! (defined('DOING_AJAX') && DOING_AJAX)) { 
    wp_redirect(home_url()); 
    exit; 
} 
} 

https://premium.wpmudev.org/blog/limit-access-to-your-wordpress-dashboard/

+0

전혀 작동하지 않습니다. 이제는 리디렉션되지 않습니다. – user6176114

+0

@ user6176114 다시 시도하십시오. 수정했습니다. –

+0

고맙습니다.하지만 여전히 작동하지 않습니다. – user6176114

0

이 시도 : 첫 번째 사용자가 logged_in되어 있는지 확인 예 다음 사용자 정보를 가지고 당신이 그것으로 가장 원하는 일을 할 경우

if(is_user_logged_in()){ 
    $current_user = wp_get_current_user(); 
     if($current_user->user_login == "John"){ 
      wp_safe_redirect("Where ever you want"); 
      exit; 
      } 
     else 
      wp_safe_redirect(home_url('/')); 

참고 : 확인 데이터베이스에 사용자 이름을 확인하십시오 내 성을 내 성으로 설정했습니다.

관련 문제