Existe-t-il une fonction API Drupal comme node_load()
celle qui renverra une liste de nœuds d'un type donné?
J'ai essayé $nodes = node_load(array("type" => 'student_vote'))
, mais il ne retourne qu'un seul noeud.
Je sais que je pourrais coder quelque chose comme ça node_load()
, mais je voulais voir s'il y avait déjà quelque chose comme ça là-bas.
Il n’existe pas d’API de ce type pour Drupal 6. Le plus simple que vous puissiez faire est d’interroger correctement tous les ID de nœuds pour le type de contenu, puis de les charger chacun à l’aide de node_load (), mais cela nécessitera n + 1 requêtes et n’est pas très efficace.
Remarque:
db_rewrite_sql
assurera la vérification de l'accès et le filtrage fourni par d'autres modules (tels que le filtrage de la langue fourni par le module i18n).Pour Drupal 7, vous pouvez utiliser
$nodes = node_load_multiple(array(), array('type' => $type));
mais l’$conditions
argument denode_load_multiple()
est obsolète. Au lieu de cela, vous devez utiliser EntityFieldQuery pour rechercher les ID de nœud, puis les utiliser,node_load_multiple()
mais sans$condition
argument s.la source
Il y a déjà plusieurs bonnes réponses, mais elles prennent la question à la lettre et ne font référence qu'aux nœuds.
Étant donné que D6 ne dispose pas d'une API pour faire ce qui est demandé, et qu'il n'est pas nécessaire de se limiter aux nœuds de D7 et de transmission, je pense qu'une bonne réponse devrait être une entité générique.
la source
EntityFieldQuery
, mais vous avez déjà écrit la vôtre. J'ajouterais simplement que le deuxième argument deuser_load_multiple()
a été déconseillé depuis Drupal 7, et que le code utilisé devrait être celui que vous montrez.array_keys($results[$entity_type])
?entity_load($entity_type, array_keys($results['node']));
. Havent l'a testé pour d'autres entités ..drupal 8:
la source
Obtenir la liste des nœuds d'un type de contenu
Drupal 6:
Drupal 7:
Drupal 8:
J'espère que cela serait utile.
la source