开启左侧

[DEDE] DedeCMS用channelartlist调用顶级栏目及列表

[复制链接]
发表于 2018-12-3 21:57:41 | 显示全部楼层 |阅读模式
    这个标签全局都可使用,可以减少多次使用 {dede:arclist typeid=‘栏目ID’titlelen='60' row='10'}。除了宏标记外,{dede:channelartlist}是唯一一个可以直接嵌套其它标记的标记,不过仅限于嵌套{dede:type}{/dede:type}和{dede:arclist}{/dede:arclist}两个标记。{dede:channelartlist}和{dede:arclist}嵌套使用能同时调用顶级栏目或该栏目的下级栏目的文章,再嵌套下下级栏目需要二次开发。
       官方对该标签的案例讲解有错误,下面笔者纠正过来。
基本语法:

  1. 01        {dede:channelartlist row='10'}
  2. 02        <dl>
  3. 03         <dt><a href='{dede:field name='typeurl'/}'>{dede:field name='typename'/}</a></dt>/*调用频道名*/
  4. 04         <dd>
  5. 05          {dede:arclist titlelen='60' row='10'}
  6. 06             <li><a href="[field:arcurl /]">[field:title /]</a></li>/*调用文章标题*/
  7. 07          {/dede:arclist}
  8. 08         </dd>
  9. 09        </dl>
  10. 10        {/dede:channelartlist}
复制代码

   

如果只要调用其中几个频道的内容可以用{dede:channelartlist typeid='1频道ID,2频道ID,3频道ID'} 。不想调用某个频道那就设置该频道属性隐藏即可。
上面的写法只能在首页用,子页要改成

  1. 01        {dede:channelartlist row='10' typeid='top'}
  2. 02        <dl>
  3. 03         <dt><a href='{dede:field name='typeurl'/}'>{dede:field name='typename'/}</a></dt>/*调用频道名*/
  4. 04         <dd>
  5. 05          {dede:arclist titlelen='60' row='10'}
  6. 06             <li><a href="[field:arcurl /]">[field:title /]</a></li>/*调用文章标题*/
  7. 07          {/dede:arclist}
  8. 08         </dd>
  9. 09        </dl>
  10. 10        {/dede:channelartlist}
复制代码

channelartlist不能获取顶级栏目属性为外部链接的解决办法
       channelartlist是不能获取顶级栏目为外部链接的,这不够灵活,打开include/taglib/channellist.lib.php,找到
$tpsql = " reid=0 AND ispart<>2 AND ishidden<>1 AND channeltype>0 ";
       修改为
$tpsql = " reid=0 AND ishidden<>1 AND channeltype>0 ";
平度网:www.pingdu.co 平度论坛:bbs.pingdu.co
您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

 
QQ在线咨询
售前咨询热线
0532-88371356
售后服务微信
pingduwangzhan
快速回复 返回顶部 返回列表