ড্রুপাল for এর জন্য এমন কোনও এপিআই নেই you আপনি যা করতে পারেন তার মধ্যে নিকটতম বিষয়বস্তুর ধরণের জন্য সমস্ত নোড আইডির জন্য সঠিকভাবে জিজ্ঞাসা করা উচিত তারপরে নোড_লোড () ব্যবহার করে প্রতিটি লোড করুন তবে এটির জন্য 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 মডিউল দ্বারা সরবরাহিত ভাষা ফিল্টারিং)।
ড্রুপাল 7 এর জন্য, আপনি ব্যবহার করতে পারেন $nodes = node_load_multiple(array(), array('type' => $type));
তবে এর $conditions
যুক্তি node_load_multiple()
হ্রাস করা হয়েছে। পরিবর্তে, নোড আইডিগুলির জন্য ক্যোয়ারী করার জন্য আপনাকে এনটিটিফিল্ডকিউরি ব্যবহার করা উচিত 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']));
}