如何在织梦中调用多个栏目的内容?

织梦调用多个栏目的方法是使用channel标签,并设置typeid属性为需要调用的栏目ID。

管理系统(DedeCMS)中,调用部分多个栏目的方法多种多样,可以根据具体需求选择不同的实现方式,以下是一些常见的方法:

如何在织梦中调用多个栏目的内容?

h3 修改channel.lib.php文件

1、修改步骤

打开includetaglib 目录下的channel.lib.php 文件。

将以下代码复制替换到文件中:

     function lib_channel(&$ctag,&$refObj)
     {
     global $_sys_globals,$envs,$dsql;
     $attlist = "typeid|0,reid|0,row|100,col|1,type|son,currentstyle|";
     FillAttsDefault($ctag>CAttribute>Items,$attlist);
     extract($ctag>CAttribute>Items, EXTR_SKIP);
     $innertext = $ctag>GetInnerText();
     $cacheid = trim($cacheid);
     if($cacheid !='') {
     $likeType = GetCacheBlock($cacheid);
     if($likeType != '') return $likeType;
     }
     $reid = 0;
     $topid = 0;
     if(empty($typeid) && $envs['typeid']!=0)
     {
     $typeid = $envs['typeid'];
     $reid = $envs['reid'];
     }else{
     $reid=0;
     }
     if($type==''||$type=='sun') $type="son";
     if($innertext=='') $innertext = GetSysTemplets("channel_list.htm");
     if($reid==0 && $typeid>0)
     {
     $dbrow = $dsql>GetOne("Select reid From dede_arctype where id='$typeid' ");
     if(is_array($dbrow)) $reid = $dbrow['reid'];
     }
     $likeType = '';
     if($type=='top')
     {
     $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description
     From dede_arctype where reid=0 And ishidden<>1 order by sortrank asc limit 0,$row";
     }
     else if($type=="son")
     {
     //if($_sys_globals['typeid']>0) $typeid = $_sys_globals['typeid'];
     if($typeid==0) {
     return '';
     }
     $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description
     From dede_arctype where reid='$typeid' And ishidden<>1 order by sortrank asc limit 0,$row";
     }
     else if($type=="self")
     {
     if($reid==0) {
     return '';
     }
     $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description
     Fromdede_arctype where reid='$reid' And ishidden<>1 order by sortrank asc limit 0,$row";
     }
     //And id<>'$typeid'
     $needRel = false;
     $dtp2 = new DedeTagParse();
     $dtp2>SetNameSpace("field","[","]");
     $dtp2>LoadSource($innertext);
     $dsql2 = clone $dsql;
     $dsql>SetQuery($sql);
     $dsql>Execute();
     $line = $row;
     //检查是否有子栏目,并返回rel提示(用于二级菜单)
     if(ereg(':rel', $innertext)) $needRel = true;
     if(empty($sql)) return '';
     $dsql>SetQuery($sql);
     $dsql>Execute();
     $totalRow = $dsql>GetTotalRow();
     $GLOBALS['autoindex'] = 0;
     for($i=0;$i < $line;$i++)
     {
     if($col>1) $likeType .= "
     for($j=0;$j
     {
     if($col>1) $likeType .= "
     r
";
     if($row=$dsql>GetArray())
     {
     $row['sonids'] = $row['rel'] = '';
     if($needRel)
     {
     $row['sonids'] = GetSonIds($row['id'], 0, false);
     if($row['sonids']=='') $row['rel'] = '';
     else $row['rel'] = " rel='dropmenu{$row['id']}'";
     }
     //处理同级栏目中,当前栏目的样式
     if( ($row['id']==$typeid || ($topid==$row['id'] && $type=='top') ) && $currentstyle!='' )
     {
     if($currentstyle!='')
     {
     $linkOkstr = $currentstyle;
     $row['typelink'] = GetOneTypeUrlA

这样可以实现根据不同类型获取顶级栏目和子栏目列表,适用于多级导航需求。

h3 使用标签调用栏目

2、调用当前栏目的名称

   {dede:field name="typename"/}

3、调用该顶级频道下所有字栏目,例如调用5条

   {dede:channel type='son' row='5'}
   <li><a href="[field:typeurl/]">[field:typename/]</a></li>
   {/dede:channel}

4、调用指定ID的栏目,但只能调用一个

   {dede:type typeid='栏目ID'}<a href="[field:typeurl/]">[field:typename/]</a>{/dede:type}

如果要调用多个指定ID的栏目,可以重复多次调用该标签。

5、调用多级栏目

   {dede:channel type='son' noself='yes'}
   <a href="[field:typelink/]">[field:typename/]</a><br />
   {/dede:channel}

6、调用指定ID的栏目文章和栏目名称一起调用

   {dede:arclist typeid='1' row='6' titlelen='42'}
   <span><a href="[field:typeurl/]" target="_blank">[[field:typename/]]</a></span>
   <a href="[field:arcurl/]" target="_blank">[field:title/]</a>
   {/dede:arclist}

h3 FAQs(相关问答)

如何调用多个指定ID的栏目?

如果需要调用多个指定ID的栏目,可以重复多次调用{dede:type} 标签。

{dede:type typeid='1'}<a href="[field:typeurl/]">[field:typename/]</a>{/dede:type}
{dede:type typeid='2'}<a href="[field:typeurl/]">[field:typename/]</a>{/dede:type}
{dede:type typeid='3'}<a href="[field:typeurl/]">[field:typename/]</a>{/dede:type}

这样可以分别调用ID为1、2、3的栏目。

如何在首页调用单页栏目的内容?

在首页调用单页栏目的内容,可以使用以下代码:

{dede:field name='body' function='GetTopTypename(@me)'/}

这将调用单页栏目的主要内容。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1222478.html

(0)
未希的头像未希新媒体运营
上一篇 2024-10-18 19:06
下一篇 2024-10-18 19:08

相关推荐

  • 代码雨html _HTML输入

    由于您提供的信息不完整,我无法准确地生成摘要。请提供更详细的内容或背景信息,以便我能更好地帮助您。如果您需要关于HTML代码雨效果的摘要,请提供更多相关信息。

    2024-07-02
    050
  • 如何通过织梦arclist标签实现内容分页?

    织梦arclist标签实现分页的方法主要是通过设置分页参数,如row(每页显示的记录数)和page(当前页码)。,,,“html,{dede:arclist row=’10’ pagesize=’10’}, {dede:field name=’title’/},{/dede:arclist},`,在这个例子中,row=’10’表示每页显示10条记录,pagesize=’10’表示总共有10页。当需要分页时,可以通过修改page`参数来切换不同的页面。

    2024-10-02
    07
  • html file

    在HTML中,&lt;input type=&quot;file&quot;&gt;标签用于创建一个文件上传的输入控件,这个标签在性能和用户体验方面存在一些问题,为了优化HTML中的file,我们可以采用以下方法:1、使用multiple属性允许用户一次选择多个文件2、使用accept属性限制用户只能上……

    2024-03-23
    0129
  • 如何在织梦中调用栏目内容标签?

    在织梦内容页中,要调用栏目内容标签,可以使用以下代码:,,“,{dede:field name=’content’/},“

    2024-10-07
    04

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

免费注册
电话联系

400-880-8834

产品咨询
产品咨询
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入