ワードプレスでプログラム経由でユーザーを強制的にログインさせる方法について解説いたします。何らかの会員登録システムとワードプレスを連携する場合などに使用できるかと存じます。

ワードプレスでPHPプログラム経由でユーザーを追加し、そのユーザーをログイン状態にする

ワードプレスでユーザーをプログラム経由で追加するPHPコードは下記のようになります。

$userlogin="半角英数のユーザーログインID";
$password="半角英数のパスワード";
$useremail="追加するユーザーのメールアドレス";

$user_id = wp_create_user($userlogin, $password, $useremail);
$user_id_role = new WP_User($user_id);
$user_id_role->set_role('subscriber');

wp_create_user関数を使い、ユーザーログインID・半角英数のパスワード・追加するユーザーのメールアドレスを指定して簡単にPHPプログラム経由でユーザーを追加可能です。

set_roleでユーザーの権限を指定します。
ユーザーの権限には下記のようなものがあります。

管理者 (スラッグ: ‘administrator’) – ひとつのサイト内ですべての管理機能にアクセスできる人。

編集者 (スラッグ: ‘editor’) – 他のユーザーの投稿を含む投稿の公開と管理ができる人。

投稿者 (slug: ‘author’) – 自分の投稿を公開・管理できる人。

寄稿者 (slug: ‘contributor’) – 自分の投稿を公開することはできないが、投稿を書いたり管理したりすることができる人。

購読者 (スラッグ: ‘subscriber’) – 自分のプロフィールだけを管理できる人。

次にこのユーザーをワードプレスに強制的にログイン状態にします。

$creds=array();
$creds['user_login']=$useremail;
$creds['user_password']=$password;
$creds['remember']=true;//長時間ログイン状態を維持するか?
$user=wp_signon( $creds, false );

wp_signon 関数にログインのメールアドレスと、ユーザーのパスワードの平文を配列に入れて渡します。これでユーザーを強制的にログイン状態にすることができます。

ご参考になりましたら幸いです。

WordPress ワードプレスのPHPコーディング、システム制作のご依頼・ご相談はWPドクターまでお気軽にお送りください