這個標簽全局都可使用,可以減少多次使用 {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 ";