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

Posté le Mardi 20 octobre 2015 - 10:26
Dernière mise à jour le Vendredi 26 janvier 2018 - 18:35

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é

HTML restreint

  • Balises HTML autorisées : <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Les adresses de pages web et les adresses courriel se transforment en liens automatiquement.
CAPTCHA
Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...