0

我创建了一个网站,用户可以在其中注册并创建自己的模板化个人资料页面。个人资料页面在注册时自动创建为自定义帖子,用户被设置为其特定帖子(个人资料)的作者。

(用户只能有一个自定义帖子)

我想在用户登录时将www.website.com/my-profile之类的“哑” URL 重定向到用户的自定义帖子。

例如,当 John Smith 访问www.website.com/my-profile时,他会被定向到他的个人资料页面:www.website.com/users/john.smith

我发现许多 PHP 解决方案是相反的,但我似乎无法找到满足我需要的解决方案。任何帮助将不胜感激。谢谢!

4

1 回答 1

0

这可能不是原始查询的正确答案,但被证明是一种可靠的解决方法:

每次在 URL 栏中输入时,我都没有将 www.website.com/my-profile 重定向到 www.website.com/users/john.smith,而是创建了一个短代码,可以在整个站点需要时使用

add_shortcode('bt_redirect_user_link', 'bt_redirect_user_link');
function bt_redirect_user_link ($atts) {
    // check if user is logged in
    if (is_user_logged_in()) {
        // get current user object
        $current_user = wp_get_current_user();
    
        // get user nickname
        $user_nickname = $current_user->data->user_nicename;

        // set the link href
        $link_href = '/users/' . $user_nickname;

        // output the link html
        return $link_href;
    }
}

对我来说幸运的是,www.website.com /my-profile链接(需要重定向)仅在登录用户可见的按钮/图标上可用。对于需要向已注销用户显示链接的网站,这可能不是一个完全可行的解决方案,我认为在这些情况下需要添加 IF/ELSE 语句。

于 2021-10-14T11:50:48.790 回答