Php 在WordPress中登录BuddyPress配置文件后如何重定向

Php 在WordPress中登录BuddyPress配置文件后如何重定向,php,wordpress,Php,Wordpress,我使用BuddyPress插件运行WordPress 5.1.1 基本上我想做的是,将用户从自定义登录链接重定向到BuddyPress中的个人资料页面 我已经阅读并检查了Stackoverflow上为我的类似查询提供的几乎所有代码,但没有一个在我的网站上工作过 唯一有效的代码如下,但我的网站设置和设置有一个问题 function bp_help_redirect_to_profile(){ global $bp; if( is_user_logged_in() && is

我使用BuddyPress插件运行WordPress 5.1.1

基本上我想做的是,将用户从自定义登录链接重定向到BuddyPress中的个人资料页面

我已经阅读并检查了Stackoverflow上为我的类似查询提供的几乎所有代码,但没有一个在我的网站上工作过

唯一有效的代码如下,但我的网站设置和设置有一个问题

function bp_help_redirect_to_profile(){
  global $bp;
  if( is_user_logged_in() && is_front_page() ) {
   bp_core_redirect( get_option('home') . '/members/' . 
   bp_core_get_username( bp_loggedin_user_id() ) . '/profile' );
  }
}
add_action( 'get_header', 'bp_help_redirect_to_profile',1);
问题是,当我想在网站主页上重定向时,它会在BuddyPress个人资料上不断重定向我。类别和帖子部分加载正确

所以,我需要的是,当登录流重定向用户在他们的BuddyPress配置文件页面上时,当用户点击站点的主页加载站点的主页而不是BuddyPress之后

我希望有人能以这种方式帮助和调整函数

谢谢

您可以使用wp\u登录操作来完成此操作。请检查以下示例。bp_core_get_user_域将获取配置文件URL,成功登录后,用户将重定向到该配置文件URL

function wpso_take_to_profile( $user_login, $user ) {
    if ( function_exists( 'bp_core_get_user_domain' ) ) {
        $url = bp_core_get_user_domain( $user->ID );
        wp_redirect( $url );
        die();
    }
}
add_action('wp_login', 'wpso_take_to_profile', 10, 2);

测试代码放在活动主题函数文件中

当有人成功登录时,此挂钩将运行。听起来像是你在寻找的:谢谢你提供的功能,请想一想,因为我使用了一个自定义的登录弹出url www.example.com/?list\u login\u弹出窗口,成功登录后不会重定向。它与社交登录配合得很好。谢谢
add_filter( 'bp_login_redirect', 'bpdev_redirect_to_profile', 11, 3 );

function bpdev_redirect_to_profile( $redirect_to_calculated, $redirect_url_specified, $user )
{

  if( empty( $redirect_to_calculated ) )
    $redirect_to_calculated = admin_url();

    //if the user is not site admin,redirect to his/her profile

if( isset( $user->ID) && ! is_super_admin( $user->ID ) )
    return bp_core_get_user_domain( $user->ID );
else
    return $redirect_to_calculated; /*if site admin or not logged in,do not do 
    anything much*/

}