# Novo plugin: Bauhaus File Cleanup for Tainacan - apaga de vez os arquivos dos itens deletados

**URL:** <https://tainacan.discourse.group/t/novo-plugin-bauhaus-file-cleanup-for-tainacan-apaga-de-vez-os-arquivos-dos-itens-deletados/2806>\
**Category:** Divulgação\
**Created:** [Julho 7, 2026, 9:05pm UTC](https://tainacan.discourse.group/t/novo-plugin-bauhaus-file-cleanup-for-tainacan-apaga-de-vez-os-arquivos-dos-itens-deletados/2806 "2026-07-07T21:05:20Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![marvila](https://yyz2.discourse-cdn.com/free1/user_avatar/tainacan.discourse.group/marvila/32/2626_2.png) [@marvila](https://tainacan.discourse.group/u/marvila)\
**Post date:** [Julho 7, 2026, 9:05pm UTC](https://tainacan.discourse.group/t/novo-plugin-bauhaus-file-cleanup-for-tainacan-apaga-de-vez-os-arquivos-dos-itens-deletados/2806/1 "2026-07-07T21:05:20Z")

</div>

Olá, comunidade Tainacan! 👋

Quem administra repositórios maiores talvez já tenha esbarrado neste detalhe: quando você exclui um item **permanentemente** , o Tainacan nem sempre remove os arquivos correspondentes do disco. Eles ficam lá, “órfãos”, ocupando espaço na pasta de uploads e crescendo com o tempo, especialmente os arquivos de **itens privados** , que ficam guardados nas pastas com prefixo `_x_<item_id>`.

Pensando nisso, desenvolvemos um pequeno add-on para resolver exatamente esse ponto:

👉 [Bauhaus File Cleanup for Tainacan – WordPress plugin | WordPress.org](https://wordpress.org/plugins/bauhaus-file-cleanup-for-tainacan/) (in English here)

**O que ele faz:**

O plugin permite habilitar e desabilitar a deleção de anexos de itens quando estes são removidos permanentemente de uma coleção. Ou seja, ao excluir um item permanentemente, o plugin garante a remoção dos arquivos daquele item como documentos, anexos, thumbnails, as versões derivadas de imagem geradas pelo WordPress e também as pastas privadas `_x_`. Ele funciona via o hook `before_delete_post`, então cobre todos os caminhos de exclusão: a lixeira do admin do Tainacan, o processo de edição em massa, o “Esvaziar lixeira” do WordPress, o WP-CLI, etc. De quebra, quando uma coleção inteira é apagada, a pasta dela, e seus itens, também vai junto.

**A origem**

O plugin nasceu de uma necessidade real que tivemos aqui na **[Bauhaus Tech](https://bauhaustech.com/)** trabalhando com acervos no Tainacan, e resolvemos abrir pra comunidade porque imaginamos que outros times enfrentam o mesmo problema. Movemos milhares de itens de uma coleção pra outra e, na hora de remover os itens da coleção antiga, os arquivos ficaram órfãos no disco ocupando espaço.

Este post foi onde tudo começou por aqui e tem bastante detalhes.

> [@Como mover parte de uma coleção para outra coleção e apagar itens movidos](https://tainacan.discourse.group/t/como-mover-parte-de-uma-colecao-para-outra-colecao-e-apagar-itens-movidos/2719/6):
>
> Poisé, acho que pode fazer sentido no contexto do WordPress, mas pros itens Tainacan a “amarração” entre itens e anexos é mais forte. No próprio WordPress isso já é meio caótico, não é à toa que a galera instala aqueles plugins pra melhorar a categorização e filtragem das mídias. Mas aí eu fico pensando se o cara quer muito mostrar uma imagem de item do Tainacan ele pode usar os blocos do Tainacan… tipo aquele da galeria de mídias que de quebra já te dá o Zoom. E estes tem o cuidado de se um i…

**Alguns pontos importantes (com carinho, leiam! 😅):**

- A limpeza é **destrutiva e irreversível**! Os arquivos são deletados do disco. É justamente o propósito do plugin.
- Só age na exclusão **permanente**. Mandar pra lixeira do Tainacan não apaga nada.
- Dá pra ligar/desligar o comportamento em **Configurações → Bauhaus File Cleanup for Tainacan** (vem ativado por padrão).
- É um add-on **independente** , não é afiliado nem endossado pelo projeto Tainacan.

**Qualquer dúvida, estou à disposição** 🙂

É gratuito e open source (GPL). Feedback, issues e sugestões são super bem-vindos! 💙

Se testarem, contem aqui e no link abaixo como foi. Um abraço a todos que fazem o Tainacan acontecer! 🚀

> **[Bauhaus File Cleanup for Tainacan](https://wordpress.org/plugins/bauhaus-file-cleanup-for-tainacan/)**
>
> Removes a Tainacan item's documents, attachments and files from disk on permanent deletion, so deleted items stop leaving orphaned uploads behind.

---

<div class="post-metadata">

**Author:** ![marvila](https://yyz2.discourse-cdn.com/free1/user_avatar/tainacan.discourse.group/marvila/32/2626_2.png) [@marvila](https://tainacan.discourse.group/u/marvila)\
**Post date:** [Julho 8, 2026, 4:27pm UTC](https://tainacan.discourse.group/t/novo-plugin-bauhaus-file-cleanup-for-tainacan-apaga-de-vez-os-arquivos-dos-itens-deletados/2806/2 "2026-07-08T16:27:44Z")

</div>

Existe uma limitação, que não é bem do plugin, mas da maneira com que o Tainacan faz a remoção de Coleções.

Quando uma coleção é removida, o Tainacan não remove os itens da coleção, deixando eles “órfãos”. O nosso plugin remove os arquivos e anexos desses itens no disco, liberando o espaço ocupado, mas eles ficam dentro do banco de dados ainda.

Isso é esperado pelo Tainacan e existe a ferramenta de linha de comando (WP CLI) que serve para limpar justamente esses itens.

`wp tainacan garbage-collector --run`

Isso irá remover qualquer item que esteja órfão, isto é, sem coleção, do banco de dados.

Como nosso plugin tem como foco apenas a remoção dos arquivos em disco, preferi não fazer essa limpeza por ele.

Essas duas funcionalidades (remover arquivos e remover os registros do banco de dados) certamente cabem dentro do Tainacan e vamos discutir isso com a equipe para uma versão futura 🙂

---

<div class="post-metadata">

**Author:** ![mateus.m.luna](https://yyz2.discourse-cdn.com/free1/user_avatar/tainacan.discourse.group/mateus.m.luna/32/3_2.png) [@mateus.m.luna](https://tainacan.discourse.group/u/mateus.m.luna)\
**Post date:** [Julho 9, 2026, 11:48pm UTC](https://tainacan.discourse.group/t/novo-plugin-bauhaus-file-cleanup-for-tainacan-apaga-de-vez-os-arquivos-dos-itens-deletados/2806/3 "2026-07-09T23:48:43Z")

</div>

Uma das coisas que temos pensado para a issue [UI for running CLI commands · Issue #1016 · tainacan/tainacan · GitHub](https://github.com/tainacan/tainacan/issues/1016) é uma forma de trazer estes comandos CLI para a interface. O desafio está no fato deles em geral serem atividades pesadas e que não podem ser chamadas como um processo de primeiro plano, por isso funcionam de forma mais garantida na CLI. Mas eu concordo com os problemas apontados sobre a limpeza dos arquivos, precisamos trazer isso para o core 💪 .
