フリーランス|WEB 制作経験丸7年、制作会社様からのご依頼に丁寧・高クオリティでお手伝いいたします。 IRODORI DESIGN

B L O G

【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’));

これらを組み合わせてお客さん用アカウントの表示画面を上手くコントロールしてきましょう。