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

WordPress中如何访问用户自定义字段返回的序列化字符串中的值

解决方法

你拿到的a:2:{i:0;s:9:"paybphone";i:1;s:3:"ips";}是PHP的序列化字符串,是PHP用来把数组、对象等复杂数据类型转为字符串存储的标准格式,无需用JSON相关函数处理,直接用unserialize()函数即可还原为原数组访问。

代码示例

function abc(){
    $current_user = wp_get_current_user();
    // 获取api字段值,第三个参数传true直接返回单条数据,无需额外取[0]
    $api_data = get_user_meta($current_user->ID, 'api', true);

    // 反序列化得到原始数组
    $api_arr = unserialize($api_data);

    // 按索引访问对应值
    // 取i=0对应的值
    echo $api_arr[0]; // 输出 paybphone
    // 取i=1对应的值
    echo $api_arr[1]; // 输出 ips
}
add_action('init', 'abc');

优化建议

  • 可以增加异常判断,避免数据异常导致报错:
function abc(){
    $current_user = wp_get_current_user();
    $api_data = get_user_meta($current_user->ID, 'api', true);
    $api_arr = [];
    // 判断是否为合法序列化数据
    if(is_serialized($api_data)){
        $api_arr = unserialize($api_data);
    }

    // 访问前先判断索引是否存在
    if(isset($api_arr[0])){
        echo $api_arr[0];
    }
}
add_action('init', 'abc');
  • 如果你当初存储api自定义字段时直接传入的是数组类型,WordPress底层会自动完成序列化、反序列化操作,你无需手动调用unserialize(),直接把get_user_meta($current_user->ID, 'api', true)的返回值当做数组访问即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 00:54:07