Drupal: Alle veröffentlichte Nodes eines Inhaltstypes laden

Irmela Göhl, 15 September 2015
  • Drupal
  • Drupal 7
  • Snippet
  • EntityFieldQuery

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