织梦CMS调用指定栏目文章但不调用子栏目文章的方法
在织梦CMS中,调用指定栏目的文章时,默认情况下也会调用该栏目的子栏目文章,如果需要只调用指定栏目的文章而不包括子栏目的文章,可以通过以下几种方法实现。
方法一:使用标签属性限制文章来源
1、选择标签:在织梦后台,找到“单页内容”或“列表内容”标签。
2、添加属性:在标签的属性中,添加catid
属性,并设置为其父栏目的ID。
3、设置子栏目排除:在标签属性中,添加notincats
属性,并设置为其子栏目的ID,用逗号分隔。
“`html
<!示例:调用ID为1的栏目文章,排除ID为2和3的子栏目文章 >
<dede:arclist catid="1" notincats="2,3" />
“`
方法二:自定义函数过滤文章
1、编写函数:在织梦模板的头部或底部,编写一个自定义函数,用于过滤文章来源。
“`php
function filter_articles($catid, $notincats) {
global $dsql;
$sql = "SELECT aid FROM dede_arctype WHERE reid = ‘$catid’";
$cates = $dsql>GetAll($sql);
foreach ($cates as $v) {
$notincats .= ‘,’ . $v[‘id’];
}
return $notincats;
}
“`
2、调用函数:在arclist
标签中调用自定义函数。
“`html
<!示例:调用ID为1的栏目文章,排除子栏目文章 >
<dede:arclist catid="1" notincats="{dede:field.catid/}" />
“`
方法三:使用SQL查询过滤
1、编写SQL查询:直接在SQL查询中过滤掉子栏目文章。
“`html
<!示例:调用ID为1的栏目文章,排除子栏目文章 >
<dede:arclist catid="1" channelid="1" order="id" limitsize="10">
<sql>
SELECT aid FROM dede_arctype WHERE reid = ‘{dede:field.catid/}’ AND id NOT IN ({dede:field.catid/})
</sql>
</dede:arclist>
“`
三种方法都可以实现只调用指定栏目的文章而不调用其子栏目文章,根据实际情况选择合适的方法进行实现。
代码示例需要在织梦CMS的模板文件中正确使用,并且需要根据实际情况调整栏目ID和属性,在实际操作中,可能需要根据具体的模板文件和栏目结构进行调整。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1128454.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复