2013-02-20 181 views
0

我有一个usermeta设置为我的用户,最喜欢的帖子保存到他们的个人资料。我得到这个usemeta(它保留其中的帖子ID)。一旦我得到它,我将它放在一维数组中。我想显示他们最喜欢的帖子的列表。我曾经尝试这样做:WordPress的多个帖子从帖子ID

$favorites //array of favorites, that has come from the databese 

$query = new WP_Query(array('post__in' => array(2, 5, 12, 14, 20))); 

,它会工作得很好,如果我硬编码后的ID,但由于它是一个数组,我不能只是通过在阵列,例如,它没有返回。

$query = new WP_Query(array('post__in' => $favorites)); 

它不接受它,我也试图破灭数组中的字符串,例如:

$fav_list = implode("," , $favorites); 

和我得到这个,这正是我需要的是一个字符串 “ 124,126,125,130,132,140,​​142“,不含引号。然后我会用它作为这样的:

$query = new WP_Query(array('post__in' => array($fav_list))); 

但同样这是行不通的,它没有返回。由于收藏夹列表正在从用户列表中拉出,用户可以更改它,所以我无法对列表进行硬编码。

任何人都可以帮助我吗?它甚至可以用WP_Query。不知道为什么它没有接受字符串或我做错了什么。我通过Wordpress文档红色,但还没有找到解决方案。

在此先感谢。

回答

1

数组不作为数组存储在数据库中。他们被序列化。当你从数据库中拉出数组时,你必须unserialize()它。

http://php.net/manual/en/function.unserialize.php

如果你var_dump($favorites)它出来的数据库之后,你会发现这是一个奇怪的,看着的字符串,而不是一个数组。 var_dump(unserialize($favorites))会告诉你你的原始数组。

+1

谢谢尼古拉斯,非常有帮助。感谢您抽出宝贵的时间。 – 2013-02-23 21:18:36