Answers:
您正在寻找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删除给定内容类型的节点?