मैं केवल एक नोड का शीर्षक जानता हूं, और मैं नोड का उपयोग करके लोड करना चाहता हूं node_load()
।
मैं उसको कैसे करू?
मैं केवल एक नोड का शीर्षक जानता हूं, और मैं नोड का उपयोग करके लोड करना चाहता हूं node_load()
।
मैं उसको कैसे करू?
जवाबों:
Drupal 6 में, आप निम्न कोड का उपयोग कर सकते हैं।
$node = node_load(array('title' => 'node title'));
यदि आप नोड के प्रकार को भी जानते हैं, तो आप निम्न कोड का उपयोग कर सकते हैं।
$node = node_load(array('title' => 'node title', 'type' => 'page'));
नोड_लोड () हमेशा एकल नोड लौटाता है। ऐसा इसलिए है क्योंकि फ़ंक्शन डेटाबेस क्वेरी परिणाम संसाधन पर 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'])));
}
यहाँ एक सरल तरीका है (जैसा कि पहले से ही क्लाइव और एसओ द्वारा सुझाया गया है ):
$nodes = node_load_multiple(NULL, array("title" => "Foo Bar"));
$node = current($nodes);
और EntityFieldQuery वर्ग का उपयोग करने की तुलना में याद रखना बहुत आसान है ।
यह भी देखें: एसओ में ड्रुपल 7 में शीर्षक द्वारा प्रोग्रामेटिक रूप से नोड्स प्राप्त करना
@todo Remove $conditions in Drupal 8.
द्रुपाल 8 में भी
$nids = \Drupal::entityQuery('node')
->condition('title', 'YourNodeTitle')
->sort('nid', 'DESC')
->execute();
और अगला:
$node = \Drupal\node\Entity\Node::load(HEREYOUNODEID);
आप की जरूरत है मत भूलना
use Drupal\node\Entity\Node;
arg(1)
इसमें एनआईडी प्राप्त करना चाहिए जो सभी पृष्ठों के लिए नोड / एक्स होगा। औरnode_load()
केवल NID