// ============================== // wp-login.php へのアクセス制限(セキュリティ対策) // ============================== add_action('init', function () { // wp-login.php への直接アクセスを制限 if (strpos($_SERVER['REQUEST_URI'], 'wp-login.php') !== false && !is_user_logged_in()) { // ログインページ以外のアクセスはトップページにリダイレクトする wp_redirect(home_url('/')); // トップページにリダイレクト exit; } }); // ============================== // ログイン後のリダイレクト制御 // ============================== add_filter('login_redirect', function ($redirect_to, $request, $user) { if (is_wp_error($user)) return $redirect_to; $roles = (array) $user->roles; // 管理者の場合 if (in_array('administrator', $roles)) { return admin_url(); // 管理者は管理画面にリダイレクト } // スタッフの場合(管理者URLからスタッフがログインした場合も含む) elseif (array_intersect($roles, ['editor', 'author', 'shop_manager'])) { return admin_url(); // スタッフも管理画面にリダイレクト(スタッフURLからのログインの場合も含む) } // その他のユーザーはデフォルトのリダイレクト return $redirect_to; }, 10, 3); // ============================== // カスタムログインURL制御 // ============================== add_action('init', function () { $request_uri = trim($_SERVER['REQUEST_URI'], '/'); // 管理者専用ログインURL if ($request_uri === 'Ta7JN-dQNXmSp*T,tuJpWVECxAwBQGpKV8Ba_XN') { show_custom_login_form('admin'); exit; } // スタッフ専用ログインURL if ($request_uri === 'aXfBFtAz_MEyWbedt,Mn.ZDunB.*vr3tf,w5QUm') { show_custom_login_form('staff'); exit; } }); // ログインフォーム表示関数(ロール別) function show_custom_login_form($role) { if (is_user_logged_in()) { wp_redirect(home_url()); // ログイン済みならホームページにリダイレクト exit; } // 管理者用とスタッフ用でリダイレクト先を設定 $redirect = ($role === 'admin') ? admin_url() : home_url('/myaccount'); // スタッフはマイアカウントページへ // 任意のロゴ画像URL(テーマ内に設置しても可) $logo_url = esc_url(get_stylesheet_directory_uri() . '/image/logo.svg'); echo '
'; echo '