织梦CMS顶级栏目批量删除的方法
织梦CMS后台默认不支持批量删除栏目。当需要清理大量不再使用的顶级栏目时,可以通过数据库操作来实现。
警告:删除栏目前务必完整备份数据库和网站文件!栏目删除会级联删除其下所有子栏目和文章内容,操作不可逆。
一、通过SQL批量删除顶级栏目
-- 先查看要删除的栏目 SELECT id,typename FROM dede_arctype WHERE reid=0; -- 删除ID为10,11,12的顶级栏目(需同时删除子栏目) DELETE FROM dede_arctype WHERE id IN (10,11,12) OR reid IN (10,11,12); -- 删除这些栏目下的所有文章 DELETE FROM dede_archives WHERE typeid IN ( SELECT id FROM dede_arctype WHERE id IN (10,11,12) OR reid IN (10,11,12) );
二、通过后台逐个删除(推荐)
- 先删除顶级栏目下的所有子栏目(从底层往上删)。
- 删除顶级栏目下的所有文章。
- 最后删除顶级栏目本身。
三、使用PHP脚本批量删除
require_once('include/common.inc.php');
$ids=array(10,11,12); // 要删除的栏目ID
foreach($ids as $id){
$dsql->ExecuteNoneQuery("DELETE FROM dede_arctype WHERE id=$id OR reid=$id");
$dsql->ExecuteNoneQuery("DELETE FROM dede_archives WHERE typeid IN (SELECT id FROM dede_arctype WHERE id=$id OR reid=$id)");
}
四、删除后的清理
- 删除对应栏目目录下的HTML文件。
- 更新系统缓存。
- 检查前台导航是否还有已删除栏目的链接。
- 如果栏目用了专题,清理专题中的相关内容。
建议:如果只是想临时不显示某些栏目,可以将其"是否显示在导航"设为"否",而非删除。这样可以保留数据,需要时可以恢复。