Ответы:
Вы ищете EntityFieldQuery
класс :
$query = new EntityFieldQuery;
$query->entityCondition('entity_type', 'node')
->entityCondition('bundle', 'article')
->fieldCondition('field_my_field', 'value', 'a_value')
->propertyCondition('status', 1)
->fieldOrderBy('field_my_field', 'value', 'DESC');
$results = $query->execute();
if (isset($results['node'])) {
$nodes = node_load_multiple(array_keys($results['node']));
foreach ($nodes as $nid => $node) {
// Do something with the node object
}
}
Приведенный выше код загружает все сущности узлов с типом контента article
. Фильтрует по настраиваемому полю field_my_field
и status
свойству узла. Я только добавил это для справки, вам не понадобится загружать все узлы без каких-либо фильтров. То же самое касается порядка по заявлению.
Надеюсь, это поможет.
Вы также можете попробовать следующий простой двухслойный:
$res = (new EntityFieldQuery)->entityCondition('entity_type', 'node')->execute();
$entities = entity_load('node', array_keys(reset($res)));
Или следующий однострочный (PHP> = 5.5), готовый к использованию с drush eval
:
print_r((new EntityFieldQuery)->entityCondition("entity_type", "node")->entityCondition("bundle", "page")->execute());
Чтобы удалить их, пожалуйста, проверьте: Могу ли я удалить узлы данного типа контента с помощью Drush?