用户ID去掉@,转换成“.”进入 ”-”

User ID remove @ and transform "." into "-"

我有此功能,以便为我的用户设置 link 以转到他们的自定义个人资料页面:

add_shortcode( 'current_user_link', 'wppbc_current_user_link' );
function wppbc_current_user_link( $atts, $content ) {   
    if ( is_user_logged_in() ) 
    {      
    $current_user = wp_get_current_user();
    $id = $current_user->user_login;
       
return "<a class='lienprofils' href='https://mywebsite/author/{$id}'><i class='fas fa-user' aria-hidden='true'></i>  MON PROFIL</a>";   }
   return ;
}

问题是,如果用户 ID 是他的电子邮件,如 john@example.com,link https://mywebsite/author/john@example.com 将出现 403 错误。但是如果 link 是 https://mywebsite/author/johnexample-com 它就可以工作。

那么有没有一种方法可以将用户 ID 清理到我的函数中,以便删除 @ 并转换“.”变成“-”?

此致, 克莱门特

试试这个

$id = $current_user->user_login;

//Remove @ 
$id = str_replace('@', '', $id);

// Replace . with - 
$id = str_replace('.', '-', $id);