Drupal 6 के लिए ऐसा कोई API नहीं है। आप जो निकटतम काम कर सकते हैं, वह सामग्री प्रकार के लिए सभी नोड आईडी के लिए ठीक से क्वेरी करना है, फिर प्रत्येक को node_load () का उपयोग करके लोड करें, लेकिन इसके लिए n + 1 प्रश्नों की आवश्यकता होगी और यह बहुत कुशल नहीं है।
function node_load_by_type($type, $limit = 15, $offset = 0) {
$nodes = array();
$query = db_rewrite_sql("SELECT nid FROM {node} n WHERE type = '%s'", 'n');
$results = db_query_range($query, $type, $offset, $limit);
while($nid = db_result($results)) {
$nodes[] = node_load($nid);
}
return $nodes;
}
नोट: db_rewrite_sql
पहुँच जाँच और अन्य मॉड्यूल प्रदान करना सुनिश्चित करेगा फ़िल्टरिंग (जैसे कि i18n मॉड्यूल द्वारा प्रदान की गई भाषा फ़िल्टरिंग)।
Drupal 7 के लिए, आप उपयोग कर सकते हैं $nodes = node_load_multiple(array(), array('type' => $type));
लेकिन $conditions
तर्क node_load_multiple()
वितर्कित है। इसके बजाय, आपको EntityFieldQuery का उपयोग नोड आईडी के लिए क्वेरी करने के लिए करना चाहिए, फिर उपयोग करें node_load_multiple()
लेकिन बिना किसी $condition
तर्क के।
function node_load_by_type($type, $limit = 15, $offset = 0) {
$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'node')
->entityCondition('bundle', $type)
->range($offset, $limit);
$results = $query->execute();
return node_load_multiple(array_keys($results['node']));
}