DedeCMS用channelartlist调用顶级栏目及列表

    这个标签全局都可使用,可以减少多次使用 {dede:arclist typeid=‘栏目ID’titlelen='60' row='10'}。除了宏标记外,{dede:channelartlist}是唯一一个可以直接嵌套其它标记的标记,不过仅限于嵌套{dede:type}{/dede:type}和{dede:arclist}{/dede:arclist}两个标记。{dede:channelartlist}和{dede:arclist}嵌套使用能同时调用顶级栏目或该栏目的下级栏目的文章,再嵌套下下级栏目需要二次开发。

       官方对该标签的案例讲解有错误,下面笔者纠正过来。

基本语法:

{dede:channelartlist typeid="31,32,33"}
  <div class="4u 12u(medium)">
      <section class="box feature">
          <div class="inner">
              <h2> <a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a><span><a href="{dede:field name='typeurl'/}" rel="nofollow">更多</a></span> </h2>
              <ul>
                {dede:arclist titlelen='40' row='6'}
                  <li><a href="[field:arcurl/]" title="[field:title/]" target="_blank">[field:title/]</a></li>
                {/dede:arclist}
              </ul>
          </div>
      </section>
  </div>
{/dede:channelartlist}

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

row是调用多少条数

{dede:field name='typename'/}是栏目名称
{dede:field name='typeurl'/}是栏目链接

上面的写法只能在首页用,子页要改成
{dede:channelartlist row='10' typeid='top'}
  <dl>
    <dt><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></dt>/*调用频道名*/
    <dd>
      {dede:arclist titlelen='60' row='10'}
        <li><a href="[field:arcurl /]">[field:title /]</a></li>/*调用文章标题*/
      {/dede:arclist}
    </dd>
  </dl>
{/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 ";


 
原文地址:https://www.cnblogs.com/lcxin/p/10898810.html