node_load () sempre retorna um único nó. Isso ocorre porque a função não faz loop no recurso de resultado da consulta ao banco de dados retornado de 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 Lembre-se de que os títulos não precisam ser exclusivos e podem ser alterados a qualquer momento. Se você puder alternar para a referência pelo ID do nó, isso seria mais seguro.
David L
4
Drupal não é fã do CamelCase.
Sivaji 28/06
1
Este exemplo também simplesmente não funcionará no D7. node_load(). Edite a tag de pergunta para refletir isso.
Chapabu 28/05
3
Versão D7 (embora usando o $conditionsparâmetro preterido ):$nodes = node_load_multiple(array(), array('title' => 'node title'));
Clive
47
No Drupal 7, os parâmetros para node_load()foram alterados. Para obter os nós que correspondem a algumas condições, você deve usar a classe EntityFieldQuery .
arg(1)
pois será o nó / X para todas as páginas. enode_load()
funciona apenas no NID #Respostas:
No Drupal 6, você pode usar o seguinte código.
Se você também conhece o tipo do nó, pode usar o seguinte código.
node_load () sempre retorna um único nó. Isso ocorre porque a função não faz loop no recurso de resultado da consulta ao banco de dados retornado de db_query () .
fonte
node_load()
. Edite a tag de pergunta para refletir isso.$conditions
parâmetro preterido ):$nodes = node_load_multiple(array(), array('title' => 'node title'));
No Drupal 7, os parâmetros para
node_load()
foram alterados. Para obter os nós que correspondem a algumas condições, você deve usar a classe EntityFieldQuery .fonte
Drupal 7
Aqui está uma maneira mais simples (como já sugerido por Clive e no SO ):
e muito mais fácil de lembrar do que usar EntityFieldQuery classe .
Consulte também: Obtendo programaticamente nós por título no Drupal 7 no SO
fonte
@todo Remove $conditions in Drupal 8.
No Drupal 7, você pode usar código semelhante ao seguinte.
fonte
No Drupal 8, execute o seguinte:
$node
será um objeto de nó totalmente instanciado.fonte
Também em Drupal 8
e a seguir:
Não esqueça que você precisa
fonte