node_load () siempre devuelve un solo nodo. Esto se debe a que la función no recorre el recurso de resultado de consulta de la base de datos devuelto por 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 Tenga en cuenta que los títulos no tienen que ser únicos y pueden cambiarse en cualquier momento. Si puede cambiar a la referencia por id de nodo, sería más seguro.
David L
44
Drupal no es fanático de CamelCase.
Sivaji
1
Este ejemplo también simplemente no funcionará en D7. node_load(). Han editado la etiqueta de pregunta para reflejar esto.
Chapabu
3
Versión D7 (aunque utilizando el $conditionsparámetro obsoleto ):$nodes = node_load_multiple(array(), array('title' => 'node title'));
Clive
47
En Drupal 7, los parámetros para node_load()han cambiado. Para obtener los nodos que coinciden con algunas condiciones, debe usar la clase EntityFieldQuery .
arg(1)
se trata de una página normal, debe obtener el NID , será nodo / X para todas las páginas. ynode_load()
funciona solo con NIDRespuestas:
En Drupal 6, puede usar el siguiente código.
Si también conoce el tipo de nodo, puede usar el siguiente código.
node_load () siempre devuelve un solo nodo. Esto se debe a que la función no recorre el recurso de resultado de consulta de la base de datos devuelto por db_query () .
fuente
node_load()
. Han editado la etiqueta de pregunta para reflejar esto.$conditions
parámetro obsoleto ):$nodes = node_load_multiple(array(), array('title' => 'node title'));
En Drupal 7, los parámetros para
node_load()
han cambiado. Para obtener los nodos que coinciden con algunas condiciones, debe usar la clase EntityFieldQuery .fuente
Drupal 7
Aquí hay una manera más simple (como ya lo sugirió Clive y SO ):
y mucho más fácil de recordar que usar la clase EntityFieldQuery .
Consulte también: Obtención programática de nodos por título en Drupal 7 en SO
fuente
@todo Remove $conditions in Drupal 8.
En Drupal 7, puede usar un código similar al siguiente.
fuente
En Drupal 8, ejecute esto:
$node
será un objeto de nodo completamente instanciado.fuente
También en Drupal 8
y después:
No olvides que necesitas
fuente