Drupal: Alle veröffentlichte Nodes eines Inhaltstypes laden

Ein kleines Snippet um programmatisch alle veröffentlichten Nodes eines bestimmten Inhaltstypen laden.

Alle Nodes eines Inhaltstypen lassen sich einfach über node_load_multiple laden.

$nodes = node_load_multiple(array(), array('type' => 'NODE_TYPE')))

Um jedoch nur die veröffentlichten Nodes eines Inhaltstypen zu laden, kann folgendes Snippet eingesetzt werden.

$query = new EntityFieldQuery();
 
$query->entityCondition('entity_type', 'node')
   ->entityCondition('bundle', 'NODE_TYPE')
   ->propertyCondition('status', 1);
 
$result = $query->execute();
 
if (!empty($result['node'])) {
  $nids = array_keys($result['node']);
  $nodes = node_load_multiple($nids);
  return $nodes;
}
else {
  return FALSE;
}