簡體   English   中英

如何在WordPress中登錄到BuddyPress配置文件后重定向

[英]How to redirect after login to BuddyPress profile in WordPress

我用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_login操作。 請查看以下示例。 bp_core_get_user_domain()將獲取配置文件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);
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*/

}

測試代碼放在您的活動主題功能文件中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM