2026年8月26日
2026年8月26日
WordPressのログイン後に特定ページへリダイレクトする方法
はじめに
ここでは、WordPressのログイン後に特定のページへ自動的にリダイレクトさせる方法を紹介します。この機能はサイト管理者にとって非常に便利で、ユーザー体験を向上させることができます。
症状・背景
- ログイン後すぐに管理画面ではなく、特定の記事やページに移動したい場合
- 新規ユーザーがログインした際に、注意事項を確認するためのページへリダイレクトさせたい場合
- サイトの更新情報を最新ユーザーに通知するために、更新情報ページへの自動移動を行いたい場合
手順・設定方法
ステップ1: フィルター関数をカスタマイズテーマのfunctions.phpに追加
# WordPressのログイン後のリダイレクト先URLを定義します。ここではダッシュボードにリダイレクトする例です。
function custom_login_redirect($redirect_to, $request) {
return home_url('/特定のページのスラッグ/');
}
add_filter('login_redirect', 'custom_login_redirect');
スtep2: プラグインを使用して設定
# WordPressプラグイン「User Redirect」を有効化します。
# 管理画面から「User Redirect」の設定ページを開きます。
# 「ログイン後のリダイレクト先URL」欄に、希望するページのスラッグまたは完全なURLを入力します。
ステップ3: ユーザーごとのカスタムリダイレクト
# 特定ユーザーのみが特定ページにリダイレクトされるように設定できます。
function custom_login_redirect($redirect_to, $request) {
if (isset($_GET['user_id'])) {
$user = get_userdata($_GET['user_id']);
if ($user->ID == 5) { // ユーザーIDが5のユーザーの場合
return home_url('/特定ページスラッグ/');
}
}
return $redirect_to;
}
add_filter('login_redirect', 'custom_login_redirect');
ステップ4: セッション情報を利用してリダイレクト
# ユーザーがログインする前にセッション情報を保存し、それを元にリダイレクト先を決定します。
function custom_login_redirect($redirect_to, $request) {
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
if (!empty($_SESSION['redirect_url'])) {
return $_SESSION['redirect_url'];
} else {
return home_url('/ダッシュボード/');
}
}
add_filter('login_redirect', 'custom_login_redirect');
注意事項
- <実践的な注意点1>: リダイレクト先ページが存在しない場合、エラーが発生する可能性があります。
- <実践的な注意点2>: 特定のユーザーに対してのみリダイレクトを設定する際は、他のユーザーが意図せずに特定のページにアクセスできないように注意してください。
- <セキュリティ上の注意>: 公開範囲が広いページへのリダイレクトは慎重に行うべきです。ユーザー情報やサイトの脆弱性につながる可能性があります。
- <パフォーマンス/運用上の注意>: リダイレクト設定を適切に管理することで、サイトの負荷軽減にも繋がります。
まとめ
1. フィルター関数を使用: カスタムテーマ内のfunctions.phpでログイン後のリダイレクト先を定義する。
2. プラグイン利用: ユーザーフレンドリーなインターフェースを持つ「User Redirect」などのプラグインを利用する。
3. ユーザー指定: 特定のユーザーに対してのみ異なるページへリダイレクトさせる設定を行う。
4. セッション情報活用: セッション情報を活用して動的にリダイレクト先を決定する。
5. 安全性確保: リダイレクト設定に伴うサイトやユーザーの安全性を十分考慮すること。
関連記事: