当前位置:首页 > 网站管理 > 正文内容

织梦dedecms全站文章列表如何排除某个栏目dede arclist 排除栏目

wzccxx5年前 (2021-06-05)网站管理7

织梦dedecms全站文章列表如何排除某个栏目【解决方法】

我们都知道织梦标签功能非常的强大,但如果栏目太多时,有的栏目文章不需要在首页显示,或者不参与排序和推荐时,只用typeid过滤和维护起来就相当麻烦,下面教大家怎么解决织梦文章列表排除某个特定栏目的方法。

既然arclist支持flag和noflag,那么应该也可以支持typeid和notypeid吧?但是经过一番研究,再跟踪了一下源码,发现织梦默认并不支持notypeid,于是只有自己动手修改了,方法非常简单仅需两步就可以,下面就给大家分享一下自己的成果。

第一步:首先找到并打开/include/taglib/arclist.lib.php文件,

在大概第130行的位置找到下面这段代码:return lib_arclistDone($refObj, $ctag, $typeid, $ctag->GetAtt('row'), $ctag->GetAtt('col'), $titlelen, $infolen,$ctag->GetAtt('imgwidth'), $ctag->GetAtt('imgheight'), $listtype, $orderby,$ctag->GetAtt('keyword'), $innertext, $envs['aid'], $ctag->GetAtt('idlist'), $channelid,$ctag->GetAtt('limit'), $flag,$ctag->GetAtt('orderway'), $ctag->GetAtt('subday'), $ctag->GetAtt('noflag'),$tagid,$pagesize,$isweight);

在最后面的括弧前面加上如下代码(注意前面的半角逗号):

,$ctag->GetAtt('notypeid')

第二步:然后再找到这一段代码:

function lib_arclistDone(&$refObj, &$ctag, $typeid=0, $row=10, $col=1, $titlelen=30, $infolen=160,$imgwidth=120, $imgheight=90, $listtype='all', $orderby='default', $keyword='',$innertext='', $arcid=0, $idlist='', $channelid=0, $limit='', $att='', $order='desc', $subday=0, $noflag='',$tagid='', $pagesize=0, $isweight='N')

在最后的括号前面加上如下代码(注意前面的半角逗号):

,$notypeid=0

第三步:最后在这个函数里面找到下面这一句代码:

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

在其前面添加如下代码:

if(!empty($notypeid)){$orwheres[] = " and arc.typeid NOT IN (".GetSonIds($notypeid).")";}

到这里,所有代码就修改完毕了。保存之后就在arclist标签里试试添加一个notypeid属性吧。对于网站栏目多,内容显示又错综复杂的情况,这样的属性还是蛮实用的。

下面是示例:

{dede:arclist row=6 orderby=pubdate type='image.' channelid='1' notypeid='9'}


扫描二维码推送至手机访问。

版权声明:本文由泰山森林发布,如需转载请注明出处。

本文链接:https://wzc.tzts.ltd/post/50.html

分享给朋友:

相关文章

dede取消后台登陆验证码

找到织梦程序data\safe\inc_safe_config.php文件,然后用Edit打开(其它代码编辑器也可以但是切记不要用记事本打开,避免出错)找到以下代码,去掉“6”保存即可;(这种方法的作用就是关掉织梦登陆后台的验证码功能,百试...

dede取消目录执行权限设置

dede取消目录执行权限设置

网站安全中,对目录的执行权限是非常敏感的,一般来说,可以写入的目录是不能够拥有脚本的执行权限的,像DedeCMS系统,可写入的有两个目录data、uploads,data目录主要是基本配置文件和缓存数据,uploads则是附件上传保存的目录...

dede 后台验证码显示不了的解决方案

在文件/include/vdimgck.php  $sessSavePath = DEDEDATA."/sessions/"; 后面添加  ob_end_clean();...

DEDECMS HTTPS访问后,网址中域名重复的解决办法

网上有人说,只要把站点跟网址清空即可解决问题,但是小编想说的是千万不要去 清空站点根网址 !千万不要!!否则你会面对更大的麻烦!真正的解决方法只有一个,那就是修改/include/helpers/channelunit.helper.php...

DEDE SQL命令行工具更改文章属性参数

update `dede_archives` set weight=70 WHERE id=81上述更改ID为81的文章的权重为70...

dede织梦系统升级后,dedecms pagelist 去掉li

首先说文章列表页:对应的类文件是:查找/include/arc.listview.class.php按Ctrl+H键,查找全部替换为空格全部替换为空格全部替换为空格保存,覆盖原文件即可.列表页pagelist 去掉li 对应的类文件是:/i...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。