回答:
あなたは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
ノードのプロパティ。参考までに紹介しますが、フィルターなしですべてのノードをロードする必要はありません。ステートメントによる注文についても同様です。
お役に立てば幸いです。
次の簡単な2ライナーを試すこともできます。
$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で特定のコンテンツタイプのノードを削除できますか?