web-dev-qa-db-ja.com

ダッシュボードで管理ユーザーをリダイレクト

私は現在、私の管理ユーザーがwordpress管理者インターフェース内のダッシュボード以外のページにリダイレクトされるようにリダイレクトを設定しようとしています。

私の条件を省略した場合、リダイレクトは機能しますが、管理者以外のユーザーもリダイレクトされるため、これは望ましくありません。

これは私がfunctions.php内に持っているコードです。

add_filter('login_redirect', 'dashboard_redirect');
function dashboard_redirect($url) {
  global $current_user;
  get_currentuserinfo();
  $level = (int) $current_user->wp_user_level;

  if ( $level > 10  ) {
    $url = 'wp-admin/edit.php';
  }

  return $url;
}     
3
plumwd

Userlevels を使用しないでください。ユーザレベルはWP 2.0に置き換えられ、3.0以降正式に廃止されました。

add_filter( 'login_redirect', 'dashboard_redirect' );
function dashboard_redirect( $url ) {
    if ( current_user_can( 'manage_options' ) ) {
         $url = esc_url( admin_url( 'edit.php' ) );
    }

    return $url;
}    

あなたが望むことをするでしょう。

6
Johannes Pille

Yanさんはこの単純なアクションを 'login_form'に追加しました(詳しくは site を参照してください)。
たとえば、ダッシュボードにリダイレクトするには、次のようにします。

add_action('login_form', 'redirect_after_login');
function redirect_after_login() {
    global $redirect_to;
    if (!isset($_GET['redirect_to'])) {
        $redirect_to = get_option('siteurl') . '/wp-admin/index.php';
    }
}
2
Gregoire

このcurrent_user条件で関数をラップしてみてください。

if (current_user_can('administrator')) {
// Your Redirect Code Here
}
0
Jeremy Jared