「WordPress」ログインしていないユーザへのリダイレクトや自動ログインなど処理いろいろ
![「WordPress」ログインしていないユーザへのリダイレクトや自動ログインなど処理いろいろ](/_next/image?url=https%3A%2F%2Ft-cr.jp%2Fassets%2Fimg%2Fpost%2Fthumb%2Fwp.jpg&w=3840&q=75)
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
「WordPress」ログインしていないユーザへのリダイレクトや自動ログインなど処理いろいろをメモしました。
会員制サイトを作成するときに使用しました。 特定のユーザーのみ閲覧を許可するページや公開前のテストページなどに使えると思います。
WordPressのfunctions.phpに記述する
ログインしていなかったら任意のページにリダイレクト
$ul
へリダイレクトさせるURLを設定します。
functions.phpif (!is_user_logged_in()) {
//この場合 http://t-cr.jp へリダイレクトします。
$url = 'http://t-cr.jp';
wp_redirect($url);
exit;
}
ログインしていなかったらログインページヘリダイレクト
wp_login_url()
でログインページのURLを取得home_url().$_SERVER['REQUEST_URI']
現在のページと比較wp_redirect($url);
でログインページへリダイレクト
functions.phpif (!is_user_logged_in()) {
$url = wp_login_url();
if($url !== home_url().$_SERVER['REQUEST_URI']){
wp_redirect($url);
exit;
}
}
ログインしていなかったら自動でログイン
wp_login
でユーザー名とパスワードを渡しログインwp_setcookie
でユーザー名とパスワードを渡しcookieを保存wp_set_current_user
で新しい現在のユーザーとして設定
functions.phpif (!is_user_logged_in()) {
// $user_name にログインさせるユーザー名を入れます。
$user_name = 'user';
$user = new WP_User(0, $user_name);
$user_pass = md5($user->user_pass);
wp_login($user_name, $user_pass, true);
wp_setcookie($user_name, $user_pass, true);
wp_set_current_user($user->ID, $user_name);
//wp_redirect関数にログイン後のページを入力します。例はダッシュボード
wp_redirect(admin_url());
exit;
}
特定のIPアドレス以外からのログインページヘアクセスはトップへリダイレクト
$ip_list
へカンマ区切りでIP指定$wp_login_url
だった場合取得したIPと比較し結果を$redirect
へ保存$redirect
がtrueだった場合home_url()
へリダイレクト
ini//カンマ区切りで $ip_listにIPアドレスを入力します。
$ip_list = '192.000.00.00,192.000.00.00';
$ip_lists = explode(',', $ip_list);
$user_ip = $_SERVER['REMOTE_ADDR'];
$redirect = true;
$url = wp_login_url();
if($url === home_url().$_SERVER['REQUEST_URI']){
foreach ($ip_lists as $ip) {
if($user_ip === $ip) {
$redirect = false;
continue;
}
}
}
if($redirect){
wp_redirect(home_url());
}
以上になります。
記事Article
もっと見る- article
Dockerの利用していないゴミを掃除しディスクスペースを解放するいくつかのやり方を紹介
- article
Next.js のバンドルサイズを可視化する@next/bundle-analyzer の紹介
- article
VSCodeでTypescriptファイルのimport補完で相対パスではなくエイリアスするための設定
- article
UUIDより短いユニークなIDを生成できるnpmライブラリnanoidの使い方
- article
【解決方法】TypeScript発生したTS2564 エラーの対処
- article
express で IP を取得する際などに利用する req.connection 非推奨(deprecated)の対処