जवाबों:
आप सीधे उस जानकारी को क्वेरी कर सकते हैं 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
}
}
एक बार में बहुत अधिक लोडिंग से बचने के लिए, जो मेमोरी समस्याओं का कारण बन सकता है।