Wordpress:post_meta中的多维数组

时间:2013-12-04 16:56:55

标签: arrays wordpress

我正在尝试为wordpress制作自定义投票插件。

我想使用post_meta来存储数据。 对于每个帖子中的每个投票,它应该有两组信息(user_id和时间戳)。 所以我用数据设置了一个数组:

$up_vote = Array(
'ls_user_id' => $current_user->ID,
'ls_timestamp' => current_time('mysql')
);

post_meta中的数据应该是这些数组的数组。 要做到这一点,我首先创建一个空数组,获取旧数据,然后像这样推送我的第一个数组:

$ls_up_votes = Array();
$ls_up_votes = get_post_meta(get_query_var('ls_id'), 'ls_up_votes');
array_push($ls_up_votes, $up_vote);

后来我把它存储起来:

update_post_meta(get_query_var('ls_id'), 'ls_up_votes', $ls_up_votes);

现在问题: 总是当我尝试获取数据(并使用它)时,它给了我一个只有一个元素的数组(sizeof()返回1)。

如何在此处存储多维数组? 我做错了什么?

谢谢你的时间! :)

1 个答案:

答案 0 :(得分:0)

[更新]

我刚注意到你正在使用array_push;相反,你应该使用array_merge。否则,您将把数组推入现有数组,使其成为多维的,即see note

您还需要确保在get_post_meta中使用正确的参数,请参阅下文。


确保将return meta用作数组而不是序列化字符串,get_post_meta有第三个参数,如果要返回数组,则应设置为TRUE。

示例:

get_post_meta( $post_id, 'ls_up_votes', TRUE );