WordPressで会員サイトなど会員向け機能を実装しているサイトで管理者権限以外などの権限グループのユーザーがWordPressのダッシュボード他、管理画面に直接アクセスしてきた場合にホームへリダイレクトさせる方法を書きます。
指定権限グループユーザーを管理画面からリダイレクト
ユーザー情報とその権限グループを取得し対象の権限グループに属している場合にホームへリダイレクトさせる関数をアクションフック “auth_redirect” に追加します。
/**
* メンバーがWP管理画面にアクセスしたらリダイレクト
*/
function ag_member_redirect( $user_id )
{
$user = get_userdata( $user_id );
$user_roles = $user->roles;
$target_role = 'subscriber'; //購読者
//対象権限ユーザーはリダイレクト
if ( in_array($target_role, $user_roles) ){
wp_redirect( home_url() );
exit();
}
}
add_action( 'auth_redirect', 'ag_member_redirect' );
上記関数を functions.php 等に追加した後に対象権限グループのユーザーでダッシュボード他WordPress管理画面にアクセスするとホームへリダイレクトされることを確認出来ます。
動作環境情報
エックスサーバー(x10) PHP 7.3.14 MySQL 5.7 WordPress 5.4
コメント