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

如何在织梦dedecms中实现文章页面显示同一分类下的其他文章?

要在织梦dedecms中实现文章页面显示同分类栏目下的其它文章,可以通过以下步骤操作:,,1. 打开织梦dedecms后台,找到对应的文章模型,点击“频道管理”或“内容模型管理”。,2. 在文章模型设置中,找到“列表附加选项”,勾选“使所有子项拥有相同的模板”。,3. 保存设置后,新建一个模板文件, 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中,文章页面显示同分类栏目下的其它文章是一项常见的需求,本文将详细介绍如何在文章内容页调用同栏目下的其他文章。

如何在织梦dedecms中实现文章页面显示同一分类下的其他文章?  第1张

方法一:使用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:修改文件后是否需要重启服务器?

答:不需要重启服务器,但需要更新系统的缓存,并在后台重新生成相应的页面或内容,以确保修改生效。

0