Respuestas:
Puede consultar esa información directamente a través de node_load_multiple()
$nodes = node_load_multiple(array(), array('type' => 'my_type'));
Puede agregar tantas condiciones de propiedad a la $conditionsmatriz (segundo argumento) como desee, por lo que el estado, la creación, etc. también son un juego justo.
$conditionsestá técnicamente en desuso (me imagino a favor EntityFieldQuery), pero las posibilidades de que esa funcionalidad se elimine de Drupal 7 son básicamente ninguna. Se rompería demasiado.
EntityFieldQuerytodo momento :) Puse esto es más para la posteridad que cualquier otra cosa
El núcleo de Drupal proporciona una clase llamada EntityFieldQuery(). También hay una página de documento útil para usarlo, que tiene muchos ejemplos. En su forma más simple:
$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
}
}
Esto cargará todos los nodos publicados del tipo "página". Periódicamente necesita ajustar esto a
$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
}
}
para evitar cargar demasiado de una vez, lo que puede causar problemas de memoria.