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

为何WordPress用户元键未创建/元值无法获取?

问题分析与修正方案

核心错误点

  • 用户ID传递错误:wp_get_current_user()返回的是WP_User对象,而get_user_meta()和update_user_meta()需要传入整数类型的用户ID,直接传对象会导致函数无法正确识别用户。
  • 元值判断逻辑错误:get_user_meta()默认返回数组(未指定第三个参数时),你用$userCredit == ""的判断永远不成立,因为数组和空字符串无法相等。若要获取单个元值,需将第三个参数设为true,此时元键不存在时会返回false。

修正后的代码

// 直接获取当前登录用户的ID(未登录时返回0,更安全)
$user_id = get_current_user_id();
$meta_key = "ai_anna_credit";
$meta_value = 150;

// 第三个参数设为true,获取单个元值,不存在则返回false
$userCredit = get_user_meta( $user_id, $meta_key, true );

// 元值不存在时创建并赋值
if ( !$userCredit ) {
   update_user_meta( $user_id, $meta_key, $meta_value );
   $userCredit = get_user_meta( $user_id, $meta_key, true );
}

额外优化建议

如果代码可能在未登录环境下执行,建议加上登录判断,避免无效操作:

if ( is_user_logged_in() ) {
    $user_id = get_current_user_id();
    $meta_key = "ai_anna_credit";
    $meta_value = 150;

    $userCredit = get_user_meta( $user_id, $meta_key, true );

    if ( !$userCredit ) {
       update_user_meta( $user_id, $meta_key, $meta_value );
       $userCredit = get_user_meta( $user_id, $meta_key, true );
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 14:11:12