【发布时间】:2019-05-23 16:12:04
【问题描述】:
我正在尝试使用 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 保存在我的帖子元中,但它没有保存它。如果$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 中。但是它不会显示在帖子编辑页面上。
【问题讨论】:
-
可能你不应该做你正在做的事情。但只是为了绕过你遇到的障碍,你可以尝试:
update_post_meta($post_id, 'inventory_ids', is_array($inventory_ids)?implode(',',$inventory_ids):$inventory_ids); -
你怎么知道它没有被保存?请记住,它的值是自动序列化的数组 - 您是否使用
get_post_meta和标志为 true 进行数组提取?也许这会有所帮助:wordpress.stackexchange.com/questions/243238/… -
@Alex 我需要把它们找回来,所以不能将逗号内爆。
-
@DavidWinder 刚刚看到它实际上序列化了数组并将其保存在数据库中。元数据没有显示在帖子编辑页面上,所以我很担心。没想到它可能会序列化数组而不显示在编辑页面上。谢谢你。它正在工作