登录后将用户重定向到特定链接

时间:2018-04-26 作者:Eugeniu Mantaluta

我是wordpress的新手,所以我肯定需要比其他人更多的帮助来理解你的答案。所以,问题是:
我的网站主页上有一个登录页面。让我们假设你是会员。如果你想登录,你应该输入用户名和密码,对吗
假设您的用户名为Malcovich. 输入用户名和密码后,单击“进入网站”按钮,您将立即被重定向到www.mywebsite/MALCOVICH<我该怎么做?如何在登录到特定页面后重定向用户,该页面名为他们访问网站时使用的用户名
我还想在菜单中添加一个语音“配置文件”,它可以将用户重定向到一个名为用户名的页面。我希望菜单中的这个按钮只能被登录的人看到<非常感谢你是我的救世主

1 个回复
最合适的回答,由SO网友:Minh 整理而成

login\\u重定向过滤器应该可以工作(将此代码添加到主题函数中。php):

function my_login_redirect( $redirect_to, $request, $user ) {
    $redirect_to =  home_url($user->user_nicename);
    return $redirect_to;
}
add_filter( \'login_redirect\', \'my_login_redirect\', 10, 3 );
对于菜单中的“PROFILE”(配置文件)(将此代码添加到要显示它的模板文件中):

if ( is_user_logged_in() ) {
    $current_user = wp_get_current_user();
    echo \'<a href="\' . esc_url( home_url( $current_user->user_nicename ) ) . \'">PROFILE</a>\';
}
更新:如果您从后端管理菜单,我不知道是否有更好的解决方案,但这将起作用:

添加一个名为“PROFILE”的自定义菜单项,并将此代码添加到主题函数中。php:

function filter_nav_menu_items( $menu ) {
  if ( $menu->title == \'PROFILE\' ) {
    if ( is_user_logged_in() ) {
      $current_user = wp_get_current_user();
      $menu->url = home_url( $current_user->user_nicename );
    }
    else {
      $menu->_invalid = true;
    }
  }

  return $menu;
}
add_filter( \'wp_setup_nav_menu_item\', \'filter_nav_menu_items\', 999 );

结束