2011-01-24 59 views
2

這是我第一次在Wordpress中使用Pods,所以如果這是一個容易回答的問題,請原諒我。我已經做了一些尋找這個問題的答案,但沒有找到任何具體回答我的問題的東西。什麼是使用WordPress Pod管理多層次關係的最有效方式CMS

我有兩種不同的豆莢創建。研究

  1. 領域:如物理學,社會學或計算
  2. 案例研究:在研究的各個領域進行案例研究,詳細

每個案例研究波德有關係領域連接起來,一個特定的學習區域。 (在這個例子中,假定一個具體的案例研究只能涉及一個研究領域,這可能會在將來發生變化,但現在這應該就足夠了。)

每個研究領域都有一個關係字段將其鏈接到特定的WP頁面(例如描述物理研究領域細節的詳細頁面)。

我想要做的,是在循環瀏覽各種案例研究的同時,能夠獲取WP Page的鏈接,它與具體的焦點領域有關。

我從技術上知道如何做到這一點,但我不確定這是否是最有效的方法。 這是我做了什麼,它似乎是工作:

<?php 
$case_studies = new Pod('case_studies'); 
$case_studies->findRecords(null, 200); 
$total_rows = $case_studies->getTotalRows(); 

if ($total_rows > 0) { 
     while ($case_studies->fetchRecord()) { 
       // RETRIEVE AREA OF FOCUS DETAILS 
       $aof = $case_studies->get_field('area_of_focus'); 
       $aof = $aof[0]; 

       // GET AREA OF FOCUS POD 
       $aofs = new Pod('areas_of_focus'); 
       $params = array('where' => "t.id like '".intval($aof['id'])."'"); 
       $aofs->findRecords($params); 
       if ($aofs->fetchRecord()) { 
         $page = $aofs->get_field('focus_page'); 
         $area_of_focus_url = get_permalink($page[0]['ID']); 
         echo '<a href="'.$area_of_focus_url.'">'. $aof['name'].'</a>'; 
       } else { 
         echo $aof['name']; 
       } 

       // CASE STUDY DETAILS GO HERE 
     } 
} 

?> 

這似乎是它的至少一個O(N²)算法,如果不是更多。我真的不知道Pod類的內部,所以它可能比這更貴。此外,這將執行多個MySQL查詢而不是單個查詢。

如果我在初始案例研究查詢中使用了一些MySQL連接,這樣我就不必讓它運行一堆其他查詢了?還是Pods本身有其他功能,可以讓我檢索關於關係字段的更多細節?

任何提示將不勝感激。

+0

您是否曾經找到過實用的解決方案? – 2011-10-30 15:47:41

+0

不適用於PodsCMS。我只是一起停止使用Pod。我現在使用高級自定義字段插件,並創建自己的自定義帖子類型。對於我所需要的,以這種方式做事非常有效。 – 2011-11-04 05:57:56

回答

1

通過遍歷關係,您實際上可以深入get_field。

嘗試了這一點尺寸爲:

$page_ID = $case_studies->get_field('area_of_focus.focus_page.ID'); 

莢會做所有的工作適合你,你可以去一噸的深層次的,你甚至可以做同樣的findRecords(如豆莢1.12)

相關問題