node_load () renvoie toujours un seul nœud. En effet, la fonction ne boucle pas sur la ressource de résultat de requête de base de données renvoyée par db_query () .
if($revision){
array_unshift($arguments, $revision);
$node = db_fetch_object(db_query('SELECT '. $fields .' FROM {node} n INNER JOIN {users} u ON u.uid = n.uid INNER JOIN {node_revisions} r ON r.nid = n.nid AND r.vid = %d WHERE '. $cond, $arguments));}else{
$node = db_fetch_object(db_query('SELECT '. $fields .' FROM {node} n INNER JOIN {users} u ON u.uid = n.uid INNER JOIN {node_revisions} r ON r.vid = n.vid WHERE '. $cond, $arguments));}
@sokratis Gardez à l'esprit que les titres ne doivent pas nécessairement être uniques et peuvent être modifiés à tout moment. Si vous pouvez passer au référencement par identifiant de nœud, ce serait plus sûr.
David L
4
Drupal n'est pas fan de CamelCase.
Sivaji
1
Cet exemple ne fonctionnera tout simplement pas dans D7. node_load(). Ont modifié la balise de question pour refléter cela.
Chapabu
3
Version D7 (bien qu'en utilisant le $conditionsparamètre obsolète ):$nodes = node_load_multiple(array(), array('title' => 'node title'));
Clive
47
Dans Drupal 7, les paramètres de node_load()ont été modifiés. Pour obtenir les nœuds qui correspondent à certaines conditions, vous devez utiliser la classe EntityFieldQuery .
arg(1)
ce sera le nœud / X pour toutes les pages. etnode_load()
fonctionne uniquement sur NIDRéponses:
Dans Drupal 6, vous pouvez utiliser le code suivant.
Si vous connaissez également le type du nœud, vous pouvez utiliser le code suivant.
node_load () renvoie toujours un seul nœud. En effet, la fonction ne boucle pas sur la ressource de résultat de requête de base de données renvoyée par db_query () .
la source
node_load()
. Ont modifié la balise de question pour refléter cela.$conditions
paramètre obsolète ):$nodes = node_load_multiple(array(), array('title' => 'node title'));
Dans Drupal 7, les paramètres de
node_load()
ont été modifiés. Pour obtenir les nœuds qui correspondent à certaines conditions, vous devez utiliser la classe EntityFieldQuery .la source
Drupal 7
Voici un moyen plus simple (comme déjà suggéré par Clive et chez SO ):
et beaucoup plus facile à retenir que d'utiliser la classe EntityFieldQuery .
Voir aussi: Obtenir par programmation des nœuds par titre dans Drupal 7 à SO
la source
@todo Remove $conditions in Drupal 8.
Dans Drupal 7, vous pouvez utiliser un code similaire au suivant.
la source
Dans Drupal 8, exécutez ceci:
$node
sera un objet nœud entièrement instancié.la source
Aussi dans Drupal 8
et ensuite:
N'oubliez pas que vous avez besoin
la source