怎么删除某个内容类型下的全部节点?

大家好,需要删除 Drupal 8 中某个内容类型下的全部节点,但数量有几千条,如果通过内容管理页面每次只能删除50条,太费时间了。

直接操作数据库的话,因为字段的数据分散在不同的表中,担心会有遗漏甚至破坏网站。

请问大家有没有什么安全、高效的办法?

1
0

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);
1
0
登录注册后添加答案