如何将新数组追加到WordPress get_post_meta获取的关联数组中
实现步骤
- 首先对获取的原数据做兼容处理,避免首次存储时原数据为空导致追加报错
- 修正新数组的键名拼写错误(原有数组字段为
modifier,你的代码误写为modifyer) - 追加新元素到原数组后,调用WordPress自带方法存回数据库即可,无需手动处理序列化逻辑
完整代码
// 获取原有自定义字段值 $response_cost = get_post_meta( $postID, $metaKey, true ); // 兼容空值场景:如果原有值不是数组,初始化为空数组 if ( ! is_array( $response_cost ) ) { $response_cost = []; } // 构建新元素,注意修正modifier的拼写错误 $add_to_response_cost = [ 'type' => $type, 'cost' => $cost, 'modifier' => $modifyer ]; // 追加新元素到数组末尾 $response_cost[] = $add_to_response_cost; // 存回数据库,WordPress会自动完成数组的序列化,无需手动处理 update_post_meta( $postID, $metaKey, $response_cost );
验证说明
存储完成后,你可以通过以下代码验证结果,输出的数组将包含3个元素,序列化后格式和你要求的完全一致:
var_dump( get_post_meta( $postID, $metaKey, true ) );
注意事项
- WordPress的
get_post_meta和update_post_meta会自动处理数组的序列化/反序列化,无需手动调用serialize()或unserialize()方法 - 必须校验原有值是否为数组,否则当该自定义字段首次添加时,
get_post_meta会返回空字符串,直接追加元素会抛出PHP错误 - 注意键名拼写一致性,否则后续读取使用时会出现字段匹配失败的问题
内容的提问来源于stack exchange,提问作者Eric Brockman
相关产品推荐
相关产品推荐

