You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress:实现已登录唯一用户的页面重定向需求

解决WordPress用户个人主页重定向问题

你遇到的核心问题是wp_get_current_user()返回的是WP_User对象,而非直接的字符串用户名,直接拼接URL会触发对象转字符串的错误。只需调用对象的user_login属性就能拿到正确的用户名,以下是完整实现方案:

步骤1:获取正确的用户名

替换你原有的代码,改用以下方式提取当前登录用户的用户名:

// 获取当前登录用户对象
$current_user = wp_get_current_user();
// 从对象中提取URL对应的用户名(user_login 为用户登录名,匹配URL中的username)
$username = $current_user->user_login;

步骤2:实现动态重定向逻辑

将重定向逻辑通过WordPress的template_redirect钩子挂载,确保页面加载时触发判断:

add_action('template_redirect', 'redirect_member_profile_to_edit');
function redirect_member_profile_to_edit() {
    // 仅对已登录用户生效
    if (!is_user_logged_in()) {
        return;
    }

    $current_user = wp_get_current_user();
    $username = $current_user->user_login;
    
    // 拼接用户个人主页的基准URL
    $target_base_url = home_url("/members/{$username}/");
    // 获取当前访问的完整URL
    $current_url = home_url($_SERVER['REQUEST_URI']);

    // 若当前访问的是个人主页根路径,执行重定向
    if ($current_url === $target_base_url) {
        // 构建目标重定向地址
        $redirect_url = home_url("/members/{$username}/profile/edit/group/1/");
        // 执行302临时重定向(如需永久重定向可改为301)
        wp_redirect($redirect_url, 302);
        // 必须终止后续代码执行
        exit;
    }
}

补充说明

  • 若你的URL中使用的是用户别名而非登录名,可将$current_user->user_login替换为$current_user->user_nicename。
  • 代码可添加到当前主题的functions.php文件,或自定义插件中。

内容的提问来源于stack exchange,提问作者Richard Gill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 21:22:03