怎么删除某个内容类型下的全部节点?
发布于
大家好,需要删除 Drupal 8 中某个内容类型下的全部节点,但数量有几千条,如果通过内容管理页面每次只能删除50条,太费时间了。
直接操作数据库的话,因为字段的数据分散在不同的表中,担心会有遗漏甚至破坏网站。
请问大家有没有什么安全、高效的办法?
1 个回答
可以参考下方代码实现删除指定内容类型的全部节点。注意将代码中的 your_content_type_name
改为需要删除的内容类型的机器名,如 article
。
Drupal 9+
$ids = \Drupal::entityQuery('node')
->condition('type', 'your_content_type_name')
->execute();
$storage_handler = \Drupal::entityTypeManager()->getStorage('node');
$entities = $storage_handler->loadMultiple($ids);
$storage_handler->delete($entities);
Drupal 8
$ids = \Drupal::entityQuery('node')
->condition('type', 'your_content_type_name')
->execute();
entity_delete_multiple('node', $ids);