Antworten:
Du suchst die EntityFieldQuery
Klasse :
$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
}
}
Der obige Code lädt alle Knotenentitäten mit einem Inhaltstyp von article
. Es filtert nach einem benutzerdefinierten Feld namens field_my_field
und der status
Eigenschaft des Knotens. Ich habe das nur als Referenz eingegeben, Sie würden es nicht brauchen, um alle Knoten ohne Filter zu laden. Gleiches gilt für die Bestellung per Anweisung.
Ich hoffe, das hilft.
Sie können auch den folgenden einfachen Zweiliner ausprobieren:
$res = (new EntityFieldQuery)->entityCondition('entity_type', 'node')->execute();
$entities = entity_load('node', array_keys(reset($res)));
Oder der folgende Einzeiler (PHP> = 5,5), gebrauchsfertig mit drush eval
:
print_r((new EntityFieldQuery)->entityCondition("entity_type", "node")->entityCondition("bundle", "page")->execute());
Um sie zu entfernen, überprüfen Sie bitte: Kann ich Knoten eines bestimmten Inhaltstyps mit Drush löschen?