ไม่มี API ดังกล่าวสำหรับ Drupal 6 สิ่งที่ใกล้เคียงที่สุดที่คุณสามารถทำได้คือการค้นหาอย่างถูกต้องสำหรับ ID โหนดทั้งหมดสำหรับประเภทเนื้อหาจากนั้นโหลดแต่ละรายการโดยใช้ 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เพื่อเคียวรี ID ของโหนดจากนั้นใช้node_load_multiple()
แต่ไม่มี$condition
อาร์กิวเมนต์ s
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']));
}