जवाबों:
आप सीधे उस जानकारी को क्वेरी कर सकते हैं node_load_multiple()
$nodes = node_load_multiple(array(), array('type' => 'my_type'));
आप $conditionsसरणी (दूसरा तर्क) में जितनी चाहें उतनी संपत्ति जोड़ सकते हैं , इसलिए स्थिति, बनाई गई, आदि भी निष्पक्ष खेल हैं।
$conditionsतकनीकी रूप से पदावनत है (मैं इसके पक्ष में कल्पना करता हूं EntityFieldQuery) लेकिन ड्रुपल 7 से हटाए जाने वाले उस कार्यक्षमता की संभावना मूल रूप से कोई नहीं है। यह बहुत ज्यादा टूट जाएगा।
EntityFieldQueryसभी तरह :) मैं डाल इस किसी और चीज से भावी पीढ़ी के लिए और अधिक में है
Drupal core नामक एक वर्ग प्रदान करता है EntityFieldQuery()। इसका उपयोग करने के लिए एक आसान दस्तावेज़ पृष्ठ भी है , जिसमें बहुत सारे उदाहरण हैं। अपने सरलतम रूप में:
$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'node')
->entityCondition('bundle', 'page')
->propertyCondition('status', 1);
$result = $query->execute();
if (!empty($result['node'])) {
$nids = array_keys($result['node']);
$nodes = node_load_multiple($nids);
foreach ($nodes as $node) {
// do something awesome
}
}
यह "पेज" प्रकार के सभी प्रकाशित नोड्स को लोड करेगा। आपको समय-समय पर इसे समायोजित करने की आवश्यकता होती है
$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'node')
->entityCondition('bundle', 'page')
->propertyCondition('status', 1);
$result = $query->execute();
if (!empty($result['node'])) {
$nids = array_keys($result['node']);
foreach ($nids as $nid) {
$node = node_load($nid, NULL, TRUE);
// do something awesome
}
}
एक बार में बहुत अधिक लोडिंग से बचने के लिए, जो मेमोरी समस्याओं का कारण बन सकता है।