我正在尝试为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)。
如何在此处存储多维数组? 我做错了什么?
谢谢你的时间! :)答案 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 );