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

织梦调用多个栏目的方法是使用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

相关推荐

  • 如何正确设置织梦文章内容中的超链接URL地址?

    在织梦CMS中,文章页的超链接URL地址通常由系统自动生成,基于文章的唯一标识符(ID)和指定的URL规则。这个URL可能包含以下元素:,,1. **域名**:这是网站的基础URL,所有页面链接都会基于此。,2. **路径前缀**:根据网站的目录结构和配置,可能会有额外的路径信息,/article/或/news/等。,3. **文章ID或别名**:为了确保每个页面的URL都是唯一的,通常会包含文章的ID或者一个可读性更强的别名。如果文章ID是123,那么URL可能是http://example.com/article/123.html;如果使用的是别名,则可能是http://example.com/article/myfirstpost.html。,4. **扩展名**:虽然现代Web开发中静态页面的扩展名(如.html、.php等)往往被隐藏或不重要,但在某些情况下,URL仍可能以特定的文件扩展名结尾。,,一个典型的织梦文章页超链接URL地址可能看起来像这样:“http://example.com/article/123.html”或者“http://example.com/article/myfirstpost.html”,example.com是你的域名,article是路径前缀,123是文章ID,myfirstpost是文章别名,而.html是可选的文件扩展名。

    2024-10-22
    065
  • 如何利用织梦arclist标签实现内容分页?

    织梦cms中,使用arclist标签实现分页的方法是结合pagesize和pagedir属性。,,,“html,{dede:arclist row=’10’ pagesize=’10’ pagedir=’pagebar’}, {dede:field name=’title’/},{/dede:arclist},“,row属性表示每页显示的文章数量,pagesize属性表示分页时每页显示的记录数,而pagedir属性用于指定生成的分页导航所在的文件目录。

    2024-10-10
    010
  • 如何在织梦中调用栏目内容标签?

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

    2024-10-07
    04
  • 如何高效调用织梦多个栏目内容?

    在织梦中,调用多个栏目的方法是使用channel标签,通过设置typeid属性指定栏目ID,用逗号分隔多个ID。如:{dede:channel typeid=’1,2,3′}{/dede:channel}。

    2024-10-04
    014

发表回复

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

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