这是我第一次在Wordpress中使用Pods,所以请原谅我这是一个容易回答的问题。我已经做了一些寻找这个问题的答案,但没有找到任何具体回答我的问题。
我创建了两种不同的pod。
每个Case Study Pod都有一个关系字段,将其链接到Study Pod的特定区域。 (在这个例子中,假设一个特定的案例研究只能与单个研究领域相关。这可能会在未来发生变化,但就目前而言,这应该足够了。)
每个研究领域都有一个关系字段,将其与特定的WP页面相关联(例如,描述物理学习领域详细信息的详细页面)。
我想做的是,在循环遍历各种案例研究时,能够获得WP页面的链接,它的特定焦点区域与之相关。
我在技术上知道怎么做,但我不确定这是最有效的方法。 这就是我所做的,它似乎正在起作用:
<?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 :(得分:1)
你可以通过遍历关系来实现对get_field的深入了解。
尝试这个尺寸:
$page_ID = $case_studies->get_field('area_of_focus.focus_page.ID');
Pods将为您完成所有工作,您可以深入了解各种级别,甚至可以使用findRecords(从Pods 1.12开始)