답변:
Drupal 6에서는 다음 코드를 사용할 수 있습니다.
$node = node_load(array('title' => 'node title'));
노드 유형도 알고 있으면 다음 코드를 사용할 수 있습니다.
$node = node_load(array('title' => 'node title', 'type' => 'page'));
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));
}
node_load()
. 이것을 반영하기 위해 질문 태그를 편집했습니다.
$conditions
매개 변수를 사용하더라도 ) :$nodes = node_load_multiple(array(), array('title' => 'node title'));
Drupal 7에서 매개 변수 node_load()
가 변경되었습니다. 일부 조건과 일치하는 노드를 얻으려면 EntityFieldQuery 클래스를 사용해야합니다 .
$query = new EntityFieldQuery();
$entities = $query->entityCondition('entity_type', 'node')
->propertyCondition('type', 'your_node_type')
->propertyCondition('title', 'your node title')
->propertyCondition('status', 1)
->range(0,1)
->execute();
if (!empty($entities['node'])) {
$node = node_load(array_shift(array_keys($entities['node'])));
}
더 간단한 방법은 다음과 같습니다 ( Clive 와 SO 에서 이미 제안한대로 ).
$nodes = node_load_multiple(NULL, array("title" => "Foo Bar"));
$node = current($nodes);
EntityFieldQuery 클래스를 사용하는 것보다 훨씬 쉽게 기억할 수 있습니다.
참조 : 프로그래밍 드루팔 7 제목별로 노드를 받고 SO에
@todo Remove $conditions in Drupal 8.
arg(1)
하며 모든 페이지의 node / X가됩니다. 및node_load()
전용 NID에 작품