Я впервые использую Pods в Wordpress, так что простите меня, если на этот вопрос будет легко ответить. Я немного искал ответ на эту проблему, но не нашел ничего, что конкретно отвечало бы на мой вопрос.
У меня есть два разных вида стручков.
- Области обучения: такие как физика, социология или компьютеры
- Тематические исследования: Подробная информация о тематических исследованиях, проведенных в различных областях обучения.
В каждом модуле тематического исследования есть поле отношений, связывающее его с конкретным модулем области изучения. (В этом примере предположим, что конкретное тематическое исследование может быть связано только с одной областью исследования. Это может измениться в будущем, но на данный момент этого должно быть достаточно.)
Каждая область исследования имеет поле отношения, связывающее ее с определенной страницей 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 в начальном запросе примера, чтобы мне не приходилось запускать кучу других запросов? Или есть ли какие-либо другие функции в самих модулях, которые могут позволить мне получить более подробную информацию о полях отношений?
Мы будем очень благодарны за любые советы.