您将需要两个独立但相似的函数。我从未使用过BuddyPress,所以我不得不猜测它会根据您的逻辑编写方式返回一个字符串。
我在一个几乎全新的WordPress安装上进行了测试,通过手动设置$user_homepage
变量作为默认值,因为我没有安装BuddyPress。这个function_exists
帮助防止插件停用或丢失时出现问题。
快速查看bp_profile_field_data
告诉我它不包括字段名,所以我会在字段id上使用它。这还意味着它可以/将获得当前用户,因此可能不需要user_id
.
快乐的编码。
成功登录重定向
/**
* Redirect Users to Their Home Page Upon Successful Log in
*/
function my_login_redirect( $redirect_url, $request, $user ) {
if ( $user && is_object( $user ) && is_a( $user, \'WP_User\' ) ) {
$user_homepage = null;
if ( function_exists( \'bp_profile_field_data\' ) ) {
$user_homepage = bp_profile_field_data( array(
\'field\' => \'Field Name\',
) );
}
if ( isset( $user_homepage ) ) {
if ( $user_homepage === \'Sports\' ) {
$redirect_url = home_url( \'/sports/\' );
}
elseif ( $user_homepage === \'Tech\' ) {
$redirect_url = home_url( \'/tech/\' );
}
}
}
return $redirect_url;
}
add_filter( \'login_redirect\', \'my_login_redirect\', 10, 3 );
登录用户首页重定向
/**
* Redirect Users to Their Home Page When Hitting the Front Page
*/
function my_template_redirect() {
if ( is_user_logged_in() && is_front_page() ) {
$user_homepage = null;
if ( function_exists( \'bp_profile_field_data\' ) ) {
$user_homepage = bp_profile_field_data( array(
\'field\' => \'Field Name\',
) );
}
if ( isset( $user_homepage ) ) {
if ( $user_homepage === \'Sports\' ) {
wp_safe_redirect( home_url( \'/sports/\' ) );
exit;
}
elseif ( $user_homepage === \'Tech\' ) {
wp_safe_redirect( home_url( \'/tech/\' ) );
exit;
}
}
}
}
add_filter( \'template_redirect\', \'my_template_redirect\' );