当前位置:首页 > 行业动态 > 正文

如何在DEDECMS中解决文章采集后待审核状态仍显示在列表中的问题?

要解决DEDECMS采集文章待审核后仍列表显示的问题,可以在系统设置中调整文章状态的显示规则。

在DEDECMS(织梦内容管理系统)中,采集的文章在待审核状态时,有时仍会在列表页显示,为了确保未审核的文章不在列表页显示,可以采取以下几种方法:

方法一:通过SQL命令更新文章状态

1、将文章批量转为“未审核”状态

进入系统设置,运行以下SQL命令:

     update dede_archives set arcrank=1 where ifnull(arcrank,0)=0;

如果数据库安装时前缀被改过,则需将dede_archives替换为实际的前缀。

这条命令会将所有已审核的文章状态改为未审核,从而避免它们在列表页显示。

2、将文章批量转为“未生成HJSMTL状态”

继续运行以下SQL命令:

     Update ****_archives set ismake=0;

同样,如果数据库前缀被改过,需要替换相应的前缀。

这样操作后,所有文章的静态文件生成状态将被取消,进一步确保未审核文章不会在列表页显示。

3、使用回收站功能

在系统设置中,设置为“使用回收站功能”。

将采集的文章全部删除,这些文章会被送进回收站。

然后将回收站中的所有文章批量还原,这样可以确保所有文章的状态正确,并且不会在列表页显示。

方法二:修改系统文件

1、修改taglib目录下面的arclist.lib.php文件

找到文件中的特定代码段并进行修改,具体步骤如下:

CrossID为空,则修改代码段为:

       $orwheres[]='(typeidin('.GetSonIds($typeid).',typeid2in('.GetSonIds($typeid).'))';

CrossID不为空,则修改为:

       $orwheres[] = 'arc.arcrank >1 ';

这样修改后,生成列表页面时就不会出现未审核的文件。

2、禁止动态显示

编辑/plus/view.php文件,找到检查阅读权限的代码段,并添加以下判断:

     $mid=$arc>Fields['mid'];
     if(($cfg_ml>M_Rank<1||$mid<>$cfg_ml>M_ID)&&$needRank==1)
     {
         showMsg("未审核文档,暂时不能查看",1);exit();
     }

保存并关闭文件,这样未审核的文章就不会再动态显示。

方法三:同步主表和微表状态

1、使用SQL语句同步状态

运行以下两条SQL语句:

     Update dede_archives set arcrank = 1,ismake=0;
     Update dede_arctiny set arcrank = 1;

这两条命令会将所有文章的主表和微表状态统一设为未审核,从而避免前台动态访问或后台一键生成时出现问题。

常见问题解答(FAQs)

1、Q: 为什么按照上述方法操作后,仍有未审核的文章在列表页显示?

A: 可能是因为数据库前缀被更改,导致SQL命令没有正确执行,请确认数据库前缀是否正确替换。

2、Q: 修改系统文件是否会影响网站其他功能?

A: 修改系统文件可能会影响网站的其他功能,建议在进行修改前备份相关文件,并在测试环境中进行验证。

3、Q: 使用回收站功能是否会删除文章数据?

A: 使用回收站功能不会真正删除文章数据,只是将其标记为删除状态,可以通过回收站恢复文章。

通过以上方法,可以有效解决DEDECMS中采集文章待审核后仍显示在列表页的问题,建议根据实际情况选择合适的方法,并在操作前备份数据库和相关文件,以防数据丢失。

问题 原因分析 解决方法
DEDECMS采集文章待审核后仍列表显示 1. 待审核状态未正确更新到数据库。
2. 前端模板未正确显示待审核状态。
3. 数据库中存在缓存问题。
1. 检查数据库中相关文章的ischeck字段是否正确更新为0(待审核)。
2. 检查前端模板中显示文章状态的代码,确保正确显示待审核状态。
3. 清除数据库中的缓存,如DEDECMS的缓存目录中的文件。
文章审核后列表显示问题 1. 审核状态更新逻辑错误。
2. 前端模板逻辑错误。
3. 服务器或数据库问题导致数据未能正确更新。
1. 重新审查审核逻辑,确保审核后状态正确更新。
2. 检查前端模板逻辑,确保审核通过后显示正确状态。
3. 检查服务器和数据库,确保数据更新无问题。
文章审核状态显示错误 1. 数据库字段类型或值错误。
2. 前端模板逻辑错误。
3. 数据库与前端模板版本不匹配。
1. 确保数据库中ischeck等字段类型正确,值更新正确。
2. 检查前端模板代码,确保逻辑正确。
3. 确保数据库与前端模板版本兼容。
缓存导致的显示问题 1. 系统缓存未及时更新。
2. 缓存策略配置错误。
3. 缓存文件损坏。
1. 清除系统缓存,如DEDECMS的缓存目录。
2. 检查缓存策略配置,确保正确。
3. 检查缓存文件,如有损坏,则重新生成。
0