Drupal çekirdek adı verilen bir sınıf sağlar EntityFieldQuery()
. Kullanmak için çok sayıda örneği olan kullanışlı bir belge sayfası da var. En basit haliyle:
$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
}
}
Bu, "page" türünde yayınlanmış tüm düğümleri yükler. Bunu periyodik olarak şu şekilde ayarlamanız gerekir:
$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
}
}
aynı anda çok fazla yüklemekten kaçınmak, bu da bellek sorunlarına neden olabilir.