这是我第一次在 Wordpress 中使用 Pods,如果这是一个容易回答的问题,请原谅我。我已经做了一些寻找这个问题的答案,但没有找到任何具体回答我的问题的东西。
我创建了两种不同的豆荚。
- 学习领域:如物理、社会学或计算机
- 案例研究:在各个研究领域进行的案例研究的详细信息
每个案例研究窗格都有一个关系字段,将其链接到研究窗格的特定区域。(在此示例中,假设特定案例研究只能与单个研究领域相关。这可能会在未来发生变化,但就目前而言,这应该足够了。)
每个研究领域都有一个关系字段,将其链接到特定的 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 本身是否还有其他功能可以让我检索有关关系字段的更多详细信息?
任何提示将非常感谢。