2016-07-24 5 views
5

ワードプレスで特定のユーザーのページを作成しました。彼のユーザー名がJohnだとしましょう。私は 'John'だけがそのページにアクセスできるようにするPHPスクリプトを探しています。そして、 'John'以外のユーザー名を持つユーザーがページにアクセスしようとすると、別のページにリダイレクトされます。特定のユーザーでない場合はリダイレクト

私は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

から参照してください。

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

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

すべてのユーザーをリダイレクトしています。私はダブルチェックして、ユーザー名 "John"のユーザーもリダイレクトされています! – user6176114

+0

@ user6176114 '$ username'変数をエコーするようにしてください – Panda

+0

$ usernameをエコーし​​ようとしましたが、 'John'と表示されます。したがって、ユーザー名は間違いありません。 – user6176114

1

これはあなたの問題を解決することがあります。

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; 
    } 
} 

は、あなたが代わりに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 YESである場合、ユーザ情報を取得し、それをあなたが望むこれまで何

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('/')); 

NOTEをすればまずチェック私は自分のユーザー名を私の姓として設定しました。

関連する問題