2013-02-20 186 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