답변:
해당 정보를 통해 직접 쿼리 할 수 있습니다 node_load_multiple()
$nodes = node_load_multiple(array(), array('type' => 'my_type'));
원하는만큼 $conditions
배열 (두 번째 인수)에 속성 조건을 추가 할 수 있으므로 상태, 생성 등도 공정한 게임입니다.
$conditions
기술적으로 더 이상 사용되지 EntityFieldQuery
않지만 (나는 찬성한다고 생각합니다 ) Drupal 7에서 해당 기능이 제거 될 가능성은 기본적으로 없습니다. 너무 많이 끊어 질 것입니다.
EntityFieldQuery
모든 방법 :) 나는 이것을 다른 것보다 후손에 더 많이 넣었습니다.
Drupal 코어는라는 클래스를 제공합니다 EntityFieldQuery()
. 사용하기에 편리한 문서 페이지 도 있으며 많은 예제가 있습니다. 가장 간단한 형태로 :
$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'node')
->entityCondition('bundle', 'page')
->propertyCondition('status', 1);
$result = $query->execute();
if (!empty($result['node'])) {
$nids = array_keys($result['node']);
$nodes = node_load_multiple($nids);
foreach ($nodes as $node) {
// do something awesome
}
}
"page"유형의 게시 된 모든 노드가로드됩니다. 주기적으로 이것을 조정해야합니다.
$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'node')
->entityCondition('bundle', 'page')
->propertyCondition('status', 1);
$result = $query->execute();
if (!empty($result['node'])) {
$nids = array_keys($result['node']);
foreach ($nids as $nid) {
$node = node_load($nid, NULL, TRUE);
// do something awesome
}
}
한 번에 너무 많은로드를 피하면 메모리 문제가 발생할 수 있습니다.