云主机测评网云主机测评网云主机测评网

云主机测评网
www.yunzhuji.net

如何在织梦DedeCMS中删除文章而不删除HTML和附件图片?

在织梦DedeCMS中,删除文章时不删除HTML和附件图片。

DedeCMS中,删除文章时默认会将对应的HTML文件和附件图片一并删除,有时候我们可能只希望删除文章内容而不删除这些资源,以便保留历史数据或进行其他用途,本文将详细介绍如何在DedeCMS中实现这一功能。

实现步骤

1、备份数据库

在进行任何操作之前,务必先备份数据库,以防止误操作导致的数据丢失。

2、修改代码

需要对DedeCMS的源码进行一些修改,具体步骤如下:

找到/dede/archives_article_do.php 文件,这是处理文章删除的核心文件。

打开该文件,查找以下代码段:

     if (empty($idlist)) return '';
     $arcids = explode(',', $idlist);
     $dsql>ExecuteNoneQuery("DELETE FROM #@__archives WHERE id IN (" . $idlist . ")");
     $dsql>ExecuteNoneQuery("DELETE FROM #@__addonarticle WHERE aid IN (" . $idlist . ")");
     $dsql>ExecuteNoneQuery("DELETE FROM #@__archives_tagindex WHERE aid IN (" . $idlist . ")");

注释掉或者移除上述删除语句,替换为以下代码:

     if (empty($idlist)) return '';
     $arcids = explode(',', $idlist);
     $dsql>ExecuteNoneQuery("UPDATE #@__archives SET isdel=1 WHERE id IN (" . $idlist . ")");
     $dsql>ExecuteNoneQuery("UPDATE #@__addonarticle SET isdel=1 WHERE aid IN (" . $idlist . ")");
     $dsql>ExecuteNoneQuery("UPDATE #@__archives_tagindex SET isdel=1 WHERE aid IN (" . $idlist . ")");

保存文件并关闭编辑器。

3、更新缓存

登录后台管理界面,进入“系统设置” > “SQL命令运行器”,执行以下SQL命令以更新缓存:

   DELETE FROM __cache WHERE type='common';

4、测试功能

删除一篇文章并检查是否成功保留了HTML文件和附件图片。

注意事项

修改代码前请确保已备份,以防万一出现问题可以恢复。

修改后的代码仅影响删除操作,不会对新增或编辑文章造成任何影响。

如果网站有多个栏目或频道,建议逐一检查各频道的删除逻辑,确保一致性。

FAQs

Q1: 修改后的文章如何彻底删除?

如果只是将文章标记为删除状态,可以通过以下SQL命令彻底删除:

DELETE FROM #@__archives WHERE isdel=1;
DELETE FROM #@__addonarticle WHERE isdel=1;
DELETE FROM #@__archives_tagindex WHERE isdel=1;

执行以上SQL命令后,被标记为删除状态的文章将被彻底从数据库中移除。

Q2: 是否可以选择性地删除某些字段而不是整个记录?

是的,可以根据需求选择性地删除某些字段,只删除文章主体内容而不删除标题,可以这样修改代码:

$dsql>ExecuteNoneQuery("UPDATE #@__archives SET body='' WHERE id IN (" . $idlist . ")");

这样可以保留文章的其他信息,如标题、作者等,而只清空文章的主体内容。

通过以上步骤,您可以在DedeCMS中实现删除文章时不删除HTML文件和附件图片的功能,这为网站的管理和数据保留提供了更多的灵活性。

打赏
版权声明:主机测评不销售、不代购、不提供任何支持,仅分享信息/测评(有时效性),自行辨别,请遵纪守法文明上网。
文章名称:《如何在织梦DedeCMS中删除文章而不删除HTML和附件图片?》
文章链接:https://www.yunzhuji.net/internet/255569.html

评论

  • 验证码