node_load () всегда возвращает один узел. Это потому, что функция не зацикливается на ресурсе результата запроса к базе данных, возвращаемом из 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 Имейте в виду, что названия не должны быть уникальными и могут быть изменены в любое время. Если вы можете переключиться на ссылки по идентификатору узла, это будет безопаснее.
Дэвид Л
4
Друпал не фанат CamelCase.
Шиваджи
1
Этот пример также просто не будет работать в D7. node_load(), Отредактировал тег вопроса, чтобы отразить это.
Чапабу
3
Версия D7 (хотя и с использованием устаревшего $conditionsпараметра):$nodes = node_load_multiple(array(), array('title' => 'node title'));
Clive
47
В Drupal 7 параметры для node_load()были изменены. Чтобы получить узлы, которые соответствуют некоторым условиям, вы должны использовать класс EntityFieldQuery .
arg(1)
это будет node / X для всех страниц. иnode_load()
работает только на NIDОтветы:
В Drupal 6 вы можете использовать следующий код.
Если вы также знаете тип узла, то можете использовать следующий код.
node_load () всегда возвращает один узел. Это потому, что функция не зацикливается на ресурсе результата запроса к базе данных, возвращаемом из db_query () .
источник
node_load()
, Отредактировал тег вопроса, чтобы отразить это.$conditions
параметра):$nodes = node_load_multiple(array(), array('title' => 'node title'));
В Drupal 7 параметры для
node_load()
были изменены. Чтобы получить узлы, которые соответствуют некоторым условиям, вы должны использовать класс EntityFieldQuery .источник
Drupal 7
Вот более простой способ (как уже было предложено Клайвом и SO ):
и гораздо легче запомнить, чем с помощью класса EntityFieldQuery .
См. Также: Программное получение узлов по заголовкам в Drupal 7 в SO
источник
@todo Remove $conditions in Drupal 8.
В Drupal 7 вы можете использовать код, подобный следующему.
источник
В Drupal 8 запустите это:
$node
будет полностью инстанцированным объектом узла.источник
Также в Drupal 8
и дальше:
Не забывайте, что вам нужно
источник