我正在寫一個theme,目前需要在特定taxonomy下的node中,以正在瀏覽的node為中心取出共五篇文章(有點像各大blog的相簿那樣,可以顯示前兩張和後兩張圖片)。目前在Drupal 7裡面,我可以用field_attach_query或者taxonomy_select_nodes來取得所有符合條件的nid,然後用array_search()來搜尋目前的node所在位置。假如search出來的值是$i好了:
array_slice($nid_array, $i-2, 5)
這樣就可以以$i為中心取出五個nid來(當$i在靠近兩端的時候可能會有例外,但先以這個簡化模型討論),之後再視用途去node_load。
我想問:這種做法會不會太消耗系統資源?例如說當$nid_array的長度有600的時候,我的網頁瀏覽速度會不會極端地下降?如果有更好的做法,有沒有範例可以參考?
Re: 如果要取出目前瀏覽node和他的鄰居們
使用 Devel 產生過千 node 做實際測試
順帶一提,Drupal 7 增加了一個 XXX_multiple ,可以輸入 array ,效能會好一點
http://api.drupal.org/api/search/7/_multiple
---
notaBlueScreen | 訂閱RSS | Plurk | twitter