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

WordPress中如何根据登录用户是否有firstname展示不同内容

你的初步判断逻辑写法存在错误,核心问题如下

  • 变量引用错误:user_firstname 不是全局独立变量,属于当前用户对象 $current_user 的属性,正确调用方式是 $current_user->user_firstname
  • 运算符使用错误:判断逻辑中你用了赋值运算符 =,这会直接给变量赋值而非做相等判断,相等判断需要用 ==,如果是判断值非空更推荐用 empty()/isset() 函数
  • 分支结构错误:else 关键字后不能直接接判断条件,多条件分支需要使用 else if,否则会触发语法报错

完整实现代码

function show_loggedin_function( $atts ) {
    global $current_user, $user_login;
    get_currentuserinfo();
    add_filter('widget_text', 'do_shortcode');
    // 先判断是否已登录
    if ($user_login) {
        // 已登录状态下判断firstname是否非空
        if (!empty($current_user->user_firstname)) {
            // 存在firstname返回内容B,可自行替换成需要的输出内容
            return 'Bienvenue <br>' . $current_user->user_firstname . ' !';
        } else {
            // 无firstname返回内容A,可自行替换成需要的输出内容
            return 'Bienvenue <br>亲爱的用户 !';
        }
    } else {
        // 未登录返回原登录入口
        return '<a href="' . wp_login_url() . ' ">Login</a>';
    }
}

补充说明:WordPress 4.5 版本之后 get_currentuserinfo() 函数已被废弃,如果你使用的是新版本站点,可以将 get_currentuserinfo() 替换为 $current_user = wp_get_current_user(),兼容性更好。

内容的提问来源于stack exchange,提问作者Clément

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:30:05