Drupal 7 - Supprimer toutes les entités d'un certain type

Pour faire du ménage sur un site et supprimer tous les contenus de test, on peut biensûr le faire à la main, ou utiliser un script.

Celui qui suit fonctionne à la fois pour les types de contenu mais aussi pour les entités custom.

Créez un fichier php à la racine de votre site drupal avec le contenu suivant. Modifiez simplement les variables $entity_type et $bundle pour correspondre à votre besoin.

Pour lancer le script, appelez-le depuis votre navigateur.

<?php
define('DRUPAL_ROOT', getcwd());

require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);


$entity_type = "node"; //Nom du type de l'entité
$bundle = "article"; //Bundle de l'entité ('article', 'page'...)

$query = new EntityFieldQuery();
$result = $query
  ->entityCondition('entity_type',$entity_type)
  ->entityCondition('bundle', $bundle)
  ->execute();

$deleted_count = 0;
foreach ($result[$entity_type] as $key => $record) {
  entity_delete($entity_type,$key);
  $deleted_count++;
}

print("$deleted_count entites de type $entity_type ont été supprimées.");

 

Ajouter un commentaire

Ne sera pas publié
CAPTCHA
Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...