2011-01-24 3 views
2

Wordpress에서 포드를 처음 사용하는 사람입니다. 쉬운 질문 일 뿐이라면 용서해주십시오. 나는이 문제에 대한 해답을 찾기 위해 약간의 노력을 해왔지만 특별히 나의 질문에 답을 찾지 못했습니다.WordPress 포드를 사용하여 여러 수준의 관계를 관리하는 가장 효율적인 방법은 무엇입니까?

두 가지 종류의 창을 만들었습니다. 연구

  1. 분야 : 물리학, 사회학 또는 컴퓨팅과 같은
  2. 사례 연구 : 연구의 다양한 분야에서 수행 사례 연구에 대한 자세한

각 사례 연구 포드는 그것을 연결하는 관계 필드가 특정 영역의 연구실 (이 예에서는 특정 사례 연구가 하나의 연구 영역에만 관련 될 수 있다고 가정합니다. 이것은 나중에 변경 될 수 있지만 현재로서는 충분해야합니다.)

각 연구 영역에는 관계 필드 이를 특정 WP 페이지 (예 : 연구의 물리 영역에 대한 세부 정보를 설명하는 상세 페이지)에 연결합니다.

내가하고 싶은 것은 다양한 사례 연구를 반복하면서 WP 페이지의 링크를 얻을 수 있다는 것입니다. 특정 초점 영역이 관련되어 있습니다.

나는 그것을 기술적으로 알고있다. 그러나 나는 그것을하는 가장 효율적인 방법이라고 확신하지 못한다. 이 내가 한 일이며, 그것은 작동하는 것 같군 자세한없는 경우는, 적어도 O (n²) 알고리즘처럼

<?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 
     } 
} 

?> 

이 보인다. 나는 Pod 클래스의 내부를 정말로 모른다. 그래서 그것은 그것보다 더 비쌀 수 있었다. 또한 이것은 단일 쿼리 대신 여러 개의 MySQL 쿼리를 실행합니다.

초기 쿼리 스터디 쿼리에서 일부 MySQL 조인을 사용하면 다른 쿼리를 실행할 필요가 없으므로 좋을까요? 또는 포드 자체에 다른 함수가있어 관계 필드에 대한 자세한 정보를 검색 할 수 있습니까?

모든 팁은 크게 감상 할 수있다.

+0

실용적인 해결책을 찾았습니까? –

+0

PodsCMS에는 포함되지 않습니다. 방금 포드를 모두 사용하지 않았습니다. 고급 사용자 정의 필드 플러그인 을 사용하여 내 자신의 사용자 정의 게시물 유형을 작성합니다. . 내가 필요로하는 것을 위해, 그렇게 효율적으로 일을 처리했습니다. –

답변

1

실제로 관계를 탐색하여 get_field로 매우 깊숙이 갈 수 있습니다.

크기의이 밖으로 시도 :

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

포드 당신을 위해 모든 일을 할 것, (포드 1.12 현재) 당신이 깊은 수준의 톤을 갈 수 있고, 당신도 findRecords과 같은 작업을 수행 할 수 있습니다

+0

나는 이것에 대해 조사한 지 오래다. 나는 기회가 생길 때 다시 기회를 줘야 할 것이다. 감사. –