织梦内容回收站在哪里清空

回收站机制说明

织梦CMS的「内容回收站」并不是一个独立的物理目录,而是数据库中 dede_archives 表里 arcrank=-2 的文章集合。删除文章时,织梦默认不会立即从数据库移除记录,而是把 arcrank 改为 -2,标记为「已删除」状态。这种软删除机制让站长有反悔机会,但如果不主动清空,回收站会越积越大,拖慢数据库。

原因分析

1. 误删文章需要恢复

编辑手滑删错文章是常见情况,回收站能救回数据。

2. 数据库膨胀

长期不清空回收站,dede_archives 表越来越大,查询变慢。

3. SEO 历史包袱

已删除的文章如果还在数据库中,可能被静态生成重新输出,造成死链。

回收站位置

后台路径

登录织梦后台,依次进入「核心 → 内容管理 → 内容回收站」,即可看到所有已删除文章列表。

直接 URL

https://yourdomain.com/dede/recycling.php

如果菜单中找不到,可以直接访问上述 URL。

清空步骤

步骤一:进入回收站列表

在回收站页面可以看到所有已删除文章,包含标题、栏目、删除时间。

步骤二:选择处理方式

  • 还原:把 arcrank 改回 0,文章恢复到原栏目。
  • 彻底删除:从数据库中物理删除该条记录。

步骤三:批量清空

勾选全部文章,点击「彻底删除」按钮。如果有大量文章(几百上千条),建议分批操作,避免单次请求超时。

步骤四:清理关联数据

彻底删除后,还需清理 dede_addonarticledede_arctiny 等关联表的残留数据:

DELETE FROM dede_addonarticle WHERE aid NOT IN (SELECT id FROM dede_archives);
DELETE FROM dede_arctiny WHERE id NOT IN (SELECT id FROM dede_archives);
DELETE FROM dede_taglist WHERE aid NOT IN (SELECT id FROM dede_archives);

步骤五:优化数据表

OPTIMIZE TABLE dede_archives, dede_addonarticle, dede_arctiny;

回收表空间,提升查询速度。

配置示例

如果想关闭软删除机制,直接物理删除:

打开 dede/content_list.php,找到 DelArc() 函数,把:

$dsql->ExecuteNoneQuery("UPDATE `dede_archives` SET arcrank='-2' WHERE id='$aid'");

改为:

$dsql->ExecuteNoneQuery("DELETE FROM `dede_archives` WHERE id='$aid'");
$dsql->ExecuteNoneQuery("DELETE FROM `dede_addonarticle` WHERE aid='$aid'");
$dsql->ExecuteNoneQuery("DELETE FROM `dede_arctiny` WHERE id='$aid'");

注意事项

  • 清空回收站前建议备份 dede_archives 表,避免误删无法恢复。
  • 关联表数据必须同步清理,否则会出现「文章已删但附加表残留」的脏数据。
  • 彻底删除后需重新生成栏目与文档HTML,否则前端仍会显示已删除文章。
  • 建议每月定期清空回收站,避免数据堆积。
如果想完全禁用回收站功能,可以在「系统基本参数 → 内容设置」中关闭「启用内容回收站」。

建议与行动

回收站是数据安全的最后一道防线,但也是数据库膨胀的隐患。建议站长建立「月度清空」习惯,每月初花十分钟清空一次回收站,同时优化数据表。对于内容频繁更新的站点,可以写个定时脚本,自动清理 30 天前的回收站文章,从源头控制数据库体积。今天就先去后台看看回收站里有多少积压文章,清掉不需要的,让数据库轻装上阵。