【WordPress】管理者以外のアカウントはダッシュボードへのアクセスを禁止する方法
WordPress
ダッシュボード
管理画面
こんにちは、岐阜・名古屋を拠点に全国各地からご依頼いただくWEBサイトを制作しているフリーランスエンジニアの寺井です。
WordPressの管理画面にログイン後、デフォルトだと最初にダッシュボードに遷移します。ダッシュボードは様々なページへ遷移出来るため、お客さん用のアカウントの場合、出来ればダッシュボードへは遷移させず直接投稿画面へ遷移させたいと思う方もいるのではないでしょうか。
今回の記事では管理者以外のアカウントでWordPressの管理画面にログインした際、直接投稿画面へ遷移させる方法を解説したいと思います。
管理者以外のアカウントがログインした場合、ダッシュボードへのアクセスを禁止する方法
WordPressの管理画面ログイン後、リダイレクト処理を追加するにはfunctions.phpに以下のように追加することで実装出来ます。
<?php
function redirect_dashboard(){
if(!current_user_can('administrator') && preg_match('/wp-admin\/index\.php$/', $_SERVER['SCRIPT_NAME'])){
wp_redirect(admin_url('edit.php'));
}
}
add_action('admin_init', 'redirect_dashboard');
?>
current_user_can()
で管理者(スラッグ:adminstrator)のみ除外します。これにより管理者以外がログインした場合、wp_redirect()
で指定したページへリダイレクトさせることが出来ます。
権限グループ
管理者の場合、スラッグ名はadminstratorですがそれ以外の権限の場合は以下の通りです。
権限グループ | スラッグ |
---|---|
管理者 | administrator |
編集者 | editor |
投稿者 | author |
寄稿者 | contributor |
購読者 | subscriber |
遷移ページの指定
またwp_redirect(admin_url('edit.php'))
は投稿ページですが、投稿ページ以外の指定方法は以下の通りです。
ページ名 | 指定方法 |
---|---|
投稿ページ | wp_redirect(admin_url(‘edit.php’)); |
カスタム投稿ページ | wp_redirect(admin_url(‘edit.php?post_type=カスタム投稿のスラッグ名’)); |
固定ページ | wp_redirect(admin_url(‘edit.php?post_type=page’)); |
これらを組み合わせてお客さん用アカウントの表示画面を上手くコントロールしてきましょう。