J'ai plusieurs milliers de nœuds d'un type de contenu particulier. En utilisant l'interface Web (example.com/admin/content), je ne peux en supprimer qu'une cinquantaine à la fois. Comment puis-je les supprimer rapidement?
31
Il existe un module pour cela (TM).
Voir Suppression en masse .
Cela utilisera l'API Batch pour supprimer les nœuds afin d'éviter les problèmes de dépassement de délai ou de mémoire lors de la suppression de milliers de nœuds avec un seul appel à node_delete_multiple ().
La suppression en bloc est un module abandonné. Voir pour les alternatives:
En regardant le module Devel Generate pour l'inspiration, voici sa fonction "content kill"
devel_generate_content_kill
:J'essaierais donc d'utiliser Devel Generate pour supprimer tous les nœuds mais n'en créer aucun, ou utiliser example.com/devel/php pour appeler
devel_generate_content_kill(array('node_types' => array('my_node_type')));
directement.la source
Dans Drupal 8, une façon consiste à utiliser la méthode entityQuery () avec la méthode EntityStorageInterface :: delete () :
Si vous devez appliquer d'autres filtres / conditions, vous pouvez consulter la page d'interface QueryInterface
EDIT (Autre moyen, grâce à @ 4k4 ):
Si vous souhaitez tester le code, vous pouvez utiliser:
Cela supprimera tous vos articles.
la source
$entities = $storage_handler->loadByProperties(['type' => 'YOUR_CONTENT_TYPE_NAME']);
entityQuery
vous devez définir laaccessCheck
sur l'instruction. Sinon, si vous l'exécutez dans drush, par défaut accessCheck est défini sur true et tous les nœuds auxquels uid 0 n'a pas accès ne seront pas retournés.Si vous souhaitez le faire uniquement via l'interface utilisateur, vous pouvez utiliser le module devel_generate.
De cette façon, aucun nœud ne sera généré et tous les nœuds des types sélectionnés seront supprimés.
la source
Créez un fichier avec le code ci-dessous à la racine de l'installation drupal et exécutez le fichier.
la source
Vous pouvez le faire dans Drupal 7 en utilisant la partie Execute PHP Code du module Devel en entrant:
la source
Pour ce faire, dans le terminal, si vous utilisez Drush et le module supprimer tout :
la source
Views Bulk operations fournit un écran d'administration de nœud configurable et activé par BatchAPI qui permet de filtrer par type, de sélectionner tous les nœuds correspondant à vos critères de recherche, etc.
C'est ma solution manuelle dans Drupal 6 - en plus de la suppression par lots, vous pouvez modifier en masse les nœuds et faire beaucoup d'autres choses.
Il semble que la version Drupal 7 ne soit pas encore prête - mais je regarderais ce module pour une version D7.
la source
Un autre extrait est:
où
TO_BE_DELETED
est le type de contenu à supprimer.la source
db_delete('node')
Avec le module Devel, en utilisant drush:
Ou dans l'interface utilisateur comme expliqué ici: http://befused.com/drupal/delete-nodes-devel
la source
devel_generate
qui doit être activé. Et pour plusieurs types, c'estdrush genc 0 --kill --types="article, page"
J'utilise Supprimer tout le module, cela fonctionne bien avec D8 et fournit des commandes drush très utiles. Par exemple, pour supprimer tout le contenu du
article
type de contenu:la source
Vous pouvez essayer Supprimer tout le module, accédez à «admin / content / delete_content» et un formulaire de suppression de contenu appartenant à certains types de contenu vous sera présenté.
Cordialement
la source
Si le module Migrate est activé, vous pouvez utiliser:
Voir Commandes de migration typiques à l'aide de Drush .
la source
Ce module est utilisé pour supprimer tout le contenu et / ou les utilisateurs d'un site. Il s'agit principalement d'un outil de développement, qui peut être utile dans plusieurs cas
https://www.drupal.org/project/delete_all
tout comme le module Bulk Delete supprimera tous les nœuds d'un certain type de nœud à l'aide de l'API batch. Il est conseillé d'utiliser le module Views Batch Operations (VBO) pour un petit nombre de nœuds. Mais si vous devez supprimer 10 000 nœuds, ce module pourrait être une meilleure option.
https://www.drupal.org/project/bulkdelete
la source
Supprimez tous les nœuds de type de contenu par programme voici une fonction d'aide:
la source
J'ai fini par utiliser db_delete , aucun module requis:
Edit / Warning: Voir le commentaire de Berdir ci-dessous. Cette méthode ne nettoie pas toutes les données liées aux nœuds.
la source
Si vous ne voulez pas coder, e vous pouvez essayer ce module, https://drupal.org/project/total_control
Allez simplement dans Dashboard -> Content, sélectionnez tout le contenu (vous pouvez filtrer par type de contenu), puis sélectionnez "Delete item"
la source