无法使用数组更新发布元

时间:2018-12-24 14:03:13

标签: php arrays wordpress

我正在尝试使用update_post_meta()并保存来自 数组。

示例:

$thing_to_add = array( '507' => 500, '366' => 550 );
update_post_meta($post_id, 'thing_to_add', $thing_to_add);

我想将整个$thing_to_add保存在我的帖子meta中,但是它没有保存。如果$thing_to_add是字符串,则更新。但是我想保存数组。我怎样才能做到这一点?

我在下面提供了完整的代码。

<input type="number" name="inventory_id[507]" />
<input type="number" name="inventory_id[366]" />
$inventory_ids = $_POST['inventory_id'];
//var_dump shows this - array(2) { [507]=> string(2) "500" [366]=> string(2) "550" }
update_post_meta($post_id, 'inventory_ids', $inventory_ids);

已解决:从下面的DavidWinder的评论中,我只是注意到它会自动序列化数组并将其保存在DB中。但是,它不会显示在帖子编辑页面上。

1 个答案:

答案 0 :(得分:0)

请注意,update_post_meta可以将数据保存为数组,但会自动序列化。

如果要将值作为数组返回,则应使用get_post_meta的标志$single

在您的情况下:

<input type="number" name="inventory_id[507]" />
<input type="number" name="inventory_id[366]" />
$inventory_ids = $_POST['inventory_id'];

//var_dump shows this - array(2) { [507]=> string(2) "500" [366]=> string(2) "550" }

// save the meta
update_post_meta($post_id, 'inventory_ids', $inventory_ids);

// get the meta
$inventory_ids_from_meta = get_post_meta( $post_id, 'inventory_ids', true ); // this is the true flag