У меня есть несколько тысяч узлов определенного типа контента. Используя веб-интерфейс (example.com/admin/content), я могу удалить только около 50 одновременно. Как я могу быстро удалить их?
31
Для этого есть модуль (ТМ).
См. Массовое удаление .
При этом будет использоваться пакетный API для удаления узлов, чтобы избежать проблем с тайм-аутом или памятью при удалении тысяч узлов одним вызовом node_delete_multiple ().
Массовое удаление - это заброшенный модуль. Смотрите альтернативы:
Глядя на модуль Devel Generate для вдохновения, вот его функция «уничтожения контента»
devel_generate_content_kill
:Поэтому я бы попытался либо использовать Devel Generate, чтобы удалить все узлы, но не создавать новые, либо использовать example.com/devel/php для
devel_generate_content_kill(array('node_types' => array('my_node_type')));
прямого вызова .источник
В Drupal 8 одним из способов является использование метода entityQuery () с методом EntityStorageInterface :: delete () :
Если вам нужно применить другие фильтры / условия, вы можете проверить страницу интерфейса QueryInterface
РЕДАКТИРОВАТЬ (Другой способ, благодаря @ 4k4 ):
Если вы хотите проверить код, вы можете использовать:
Это удалит все ваши статьи.
источник
$entities = $storage_handler->loadByProperties(['type' => 'YOUR_CONTENT_TYPE_NAME']);
entityQuery
вы должны установитьaccessCheck
в заявлении. В противном случае, если вы запустите его в drush, по умолчанию accessCheck будет иметь значение true, и любые узлы, к которым uid 0 не имеет доступа, возвращаться не будут.Если вы хотите сделать это исключительно через пользовательский интерфейс, вы можете использовать модуль devel_generate.
Таким образом, никакие узлы не будут созданы, и все узлы выбранных типов будут удалены.
источник
Создайте файл с кодом ниже в корне установки drupal и запустите файл.
источник
Вы можете сделать это в Drupal 7, используя часть Execute PHP Code модуля Devel, введя:
источник
Сделайте это в терминале, если вы используете Drush и модуль delete all :
источник
Представления Массовые операции предоставляют настраиваемый экран администрирования узлов с поддержкой BatchAPI, который позволяет выполнять фильтрацию по типу, выбирать все узлы, соответствующие вашим критериям поиска, и т. Д.
Это мое простое решение в Drupal 6 - помимо пакетного удаления, вы можете массово редактировать узлы и делать кучу других вещей.
Похоже, что версия Drupal 7 еще не готова, но я буду наблюдать за этим модулем для выпуска D7.
источник
Другой фрагмент:
где
TO_BE_DELETED
тип контента для удаления.источник
db_delete('node')
С модулем Devel, используя drush:
Или в пользовательском интерфейсе, как описано здесь: http://befused.com/drupal/delete-nodes-devel
источник
devel_generate
который нужно включить. И для нескольких типов этоdrush genc 0 --kill --types="article, page"
Я использую модуль « Удалить все », он отлично работает с D8 и предоставляет очень полезные команды drush. Например, чтобы удалить все содержимое типа
article
содержимого:источник
Вы можете попробовать удалить все модули, перейти к «admin / content / delete_content», и вам будет представлена форма для удаления контента, принадлежащего к определенным типам контента.
С уважением
источник
Если у вас включен модуль миграции, вы можете использовать:
См. Типичные команды переноса с использованием Drush .
источник
Этот модуль используется для удаления всего контента и / или пользователей с сайта. Это в основном инструмент разработчика, который может пригодиться в нескольких случаях
https://www.drupal.org/project/delete_all
так же как и модуль Bulk Delete, удалит все узлы определенного типа, используя пакетный API. Рекомендуется использовать модуль Views Batch Operations (VBO) для небольшого количества узлов. Но если вам нужно удалить 10.000 узлов, этот модуль может быть лучшим вариантом.
https://www.drupal.org/project/bulkdelete
источник
Удалить все узлы типа контента программно, вот вспомогательная функция:
источник
Я закончил с использованием db_delete , никаких модулей не требуется:
Редактировать / Предупреждение: см. Комментарий Бердира ниже. Этот метод не очищает все данные, связанные с узлами.
источник
Если вы не хотите кодировать, вы можете попробовать этот модуль, https://drupal.org/project/total_control
Просто зайдите в Dashboard -> Content, выберите весь контент (вы можете фильтровать по типу контента), затем выберите «Delete item»
источник