article_list.htm
。,4. 编辑article_list.htm
模板文件,添加如下代码:,,“html,{dede:field name='position'},, {dede:sql sql='SELECT id,title,arcrank,litpic FROM
#@__archives WHERE channelid = [field:channel] AND id [field:id] ORDER BY arcrank DESC,id DESC'},[field:title/], {/dede:sql},,{/dede:field},
“,,5. 保存模板文件,并在需要显示同分类栏目下其他文章的页面引入该模板文件。在织梦dedecms中,文章页面显示同分类栏目下的其它文章是一项常见的需求,本文将详细介绍如何在文章内容页调用同栏目下的其他文章。
方法一:使用channelartlist标签
1、修改文件:找到includetaglibchannelartlist.lib.php文件,查找并修改以下代码:
原代码:$attlist = 'typeid|0,row|20,cacheid|';
修改为:$attlist = 'typeid|0,row|20,cacheid|,type|';
原代码:if($typeid==0 || $typeid=='top') {
修改为:
if($type=='reid') { $reid = $refObj>TypeLink>TypeInfos['reid']; $tpsql = " reid='$reid' AND ispart<>2 AND ishidden<>1 "; } else if($typeid==0 || $typeid=='top') { $tpsql = " reid=0 AND ispart<>2 AND ishidden<>1 AND channeltype>0 "; }
2、使用方法:在文章内容页使用如下代码来调用同栏目的其他文章:
{dede:channelartlist type='reid' row='5'} 底层循环代码 {/dede:channelartlist}
方法二:使用副栏目功能
1、系统设置:进入后台,依次点击【系统设置】【系统基本参数】【性能选项】,确保“是否启用副栏目”选项设置为“开启”。
2、修改文件:找到并打开 /include/taglib/arclist.lib.php 文件,查找并修改以下代码:
原代码(大约在第295296行):
if($CrossID=='') $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).')'; else $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).','.$CrossID.')';
修改为:
if($CrossID=='') $orwheres[] = ' (arc.typeid IN ('.GetSonIds($typeid).') OR arc.typeid2 IN ('.GetSonIds($typeid).')) '; else $orwheres[] = ' (arc.typeid IN ('.GetSonIds($typeid).','.$CrossID.') OR arc.typeid2 IN ('.GetSonIds($typeid).','.$CrossID.')) ';
3、更新缓存:保存文件后,进入DEDE后台,更新缓存,重新生成需要多栏目显示的文章,选择副栏目重新生成即可。
FAQs
问题1:如何确保调用的文章是同分类栏目下的?
答:通过上述方法一和方法二中的设置,可以确保调用的文章是同分类栏目下的,方法一中通过修改channelartlist标签的type属性为’reid’,方法二中通过修改arclist标签的SQL条件,都可以实现这一目标。
问题2:修改文件后是否需要重启服务器?
答:不需要重启服务器,但需要更新系统的缓存,并在后台重新生成相应的页面或内容,以确保修改生效。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1227107.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复