在仪表板中重定向管理员用户

时间:2011-11-09 作者:elke_wtf

我目前正在尝试设置重定向,以便将我的管理员用户重定向到wordpress管理员界面中仪表板以外的页面。

如果我省略了我的条件,重定向会起作用,但它也会重定向非管理员用户,我不希望这样。

这是我在函数中的代码。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;
}     

4 个回复
SO网友:Johannes Pille

您不应该使用Userlevels. WP 2.0中的Userlevels已被替换,自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;
}    
会做你想做的事。

SO网友:Gregoire

Yan还将此简单操作添加到“login\\u表单”(参见此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\';
    }
}

SO网友:Gavin

如果您想在他们尝试访问仪表板时重定向到另一个页面,而不仅仅是在登录后,请使用以下内容:

add_action( \'current_screen\', function() {
    $screen = get_current_screen();
    if ( isset( $screen->id ) && $screen->id == \'dashboard\' ) {
        wp_redirect( admin_url( \'edit.php?post_type=my-post-type\' ) );
        exit();
    }
} );

SO网友:Jeremy Jared

尝试使用此当前用户条件包装函数:

if (current_user_can(\'administrator\')) {
// Your Redirect Code Here
}

结束

相关推荐

WP_REDIRECT在标题中不起作用,退出正在中断页面

很抱歉问这么一个基本的问题,我已经看了其他问题,没有找到答案。我已经定制了一些公共页面,它们有自己的标题public。我正在页面的开头(header.php中的第1行)对所有其他页面进行基本的登录检查。其目的是将未标记的用户重定向到接收页面,在那里他们可以获得帮助、登录等。只是a)它不会重定向,b)添加“退出;”按照建议,也会打断页面的其余部分。我尝试将其抽象为函数中的函数。php和它破坏了函数。php,所以现在Idunnowhatsgoingon。代码如下:if (is_user_logged_in()