GetList 函数
通过GetList可以获取自定义的文章列表,如指定分类的最新文章、置顶文章等等
array( 'count' => 10, //(可省略) 'cate' => 1, //(可省略) 'auth' => 2, //(可省略) 'date' => '2020-1', //(可省略) 'tags' => 'abc', //(可省略) 'search' => 's', //(可省略) //以下是原$option参数的key键 'post_type' => null, //指定查询Post表的类型 (可省略) 'post_status' => null, //指定查询Post表的状态 (可省略) 'only_ontop' => false, //指定全是置顶 (可省略) 'only_not_ontop' => false, //指定全不是置顶 (可省略) 'has_subcate' => false, //指定包含子孙目录 (可省略) 'is_related' => false, //指定查询相关文章 (可省略) 'order_by_metas' => false, //指定按Metas值排序输出结果 (可省略) 'random' => 5, //随机调用5篇Post表的记录 (可省略) 'where_custom' => array(array('=', 'log_Template', '')), //自定义where 'order_custom' => array('log_ViewNums' => 'DESC', 'log_CommNums' => 'ASC'), //自定义order )
代码示例:
例1
获取10条最近发表的文章
{$array=Getlist(10);}
例2
获取分类ID为3下的10条最近发表的文章
{$array=Getlist(10,3);}
例3
获取文章中使用标签ID=1或标签名=“abc”的列表
{$array=Getlist(10,null,null,null,array($zbp->GetTagByID(1),$zbp->GetTagByAliasOrName('abc')));}
例4
搜索正文或标题内容里含有'abc'的10条文章
{$array=Getlist(10,null,null,null,null,'abc');}
例5
搜索$article的相关文章(ZC_RELATEDLIST_COUNT选项默认为10)
{$array=GetList($zbp->option['ZC_RELATEDLIST_COUNT'],null,null,null,null,null,array('is_related'=>$article->ID));}
例6
显示分类ID为1的3篇置顶文章
{php} $w=array(); $w['count']=3; //显示9篇文章 $w['cate']=1; //分类ID $w['only_ontop']=1; //显示置顶 $array=GetList($w); {/php}
例7
调用当前栏目文章
{php} $w=array(); $w['count']=20; //文章数量 $w['cate']=$article->Category->ID; //分类ID $w['order_custom']=array('log_PostTime' => 'ASC'); //自定义order $array=GetList($w); {/php}
例8
点击分类,跳转到该分类下第一篇文章
{php} $w=array(); $w['count']=1; $w['cate']=$category->ID; $w['order_custom']=array('log_ID' => 'ASC'); $array=GetList($w); {/php} {foreach $array as $article} {Redirect($article.Url)} {/foreach}
常用匹配条件
$w['cate']=$article->Category->ID; //当前分类 $w['order_custom']=array('log_PostTime' => 'ASC'); //自定义order $w['where_custom']=array(array('=', 'log_IsTop', '0')); //不显示置顶 //高亮 {php}$_listyle = ($article->ID == $_article->ID) ? ' class="active"' : '';{/php}
输出:
例1
{$array=Getlist(10);} <ul> {foreach $array as $article} <li><span class="time">{$article.Time('m-d')}</span><span class="title"><a href="{$article.Url}" title="{$article.Title}">{$article.Title}</a></span></li> {/foreach} </ul>
例2
获取分类2的10条信息,输出封面图片(如果封面图片不存在,则输出内容第一张图片)
{$array=Getlist(10,2);} <ul> {foreach $array as $article} {php} $titlepic = $article->Metas->titlepic; $titlepic = $titlepic ? $titlepic : $article->AllImages[0]; {/php} <li> <span class="img"><img src="{$titlepic}" alt="{$article.Title}"></span> <span class="title"><a href="{$article.Url}" title="{$article.Title}">{$article.Title}</a></span> <span class="time">{$article.Time('m-d')}</span> </li> {/foreach} </ul>
例3
随机调用9篇,本周内,同分类文章
{php} $cid=$article->Category->RootID?$article->Category->RootID:$article->Category->ID; //获取当前大分类ID $posttime=$article->PostTime; $weektime=$posttime-604800; $w=array(); $w['random']=9; //随机9篇文章 $w['count']=9; //读取9篇文章 $w['cate']=$cid; //当前分类或当前大分类 $w['has_subcate']=1; //指定包含子孙目录 $w['where_custom']=array(array('<>', 'log_ID', $article->ID),array('>', 'log_PostTime', $weektime),array('<', 'log_PostTime', $posttime)); //当前文章发布时间一周内的文章 $array=GetList($w); {/php} {foreach $array as $key=>$article} <li><a href="{$article.Url}" target="_blank"><i>{$key+1}</i> {$article.Title} </a></li> {/foreach}
例4
调用5篇,一年内,最热门文章
{php} $w=array(); $w['count']=5; $w['order_custom']=array('log_ViewNums' => 'DESC'); //热门文章 $w['where_custom']=array(array('>', 'log_PostTime', time()-31536000)); //仅显示一年内的文章 $w['has_subcate']=1; //包含子孙目录分类 $array=GetList($w); {/php} {foreach $array as $key=>$article} <li><a href="{$article.Url}" target="_blank"><i>{$key+1}</i> {$article.Title} </a></li> {/foreach}
例5
调用分类ID不为1的10篇文章
$w=array(); $w['count']=10; //显示数量 $w['where_custom']=array(array('<>', 'log_CateID', '1')); //分类id为1的文章不显示 $array=GetList($w); {/php} {foreach $array as $key=>$article} <li><a href="{$article.Url}" target="_blank"><i>{$key+1}</i> {$article.Title} </a></li> {/foreach}
例6
GetList(调用条数,分类ID)
{foreach GetList(5,2) as $related} <li><span>{$related.Time('Y-m-d')}</span><a href="{$related.Url}">{$related.Title}</a></li> {/foreach}
例7
foreach嵌套
{php}<?php $arr = array(8,9); foreach($arr as $key => $value){ echo "<ul>"; foreach ( GetList(5,2) as $article) { echo '<li><a href="'.$article->Url.'">'.$article->Title.'</a></li>'; } echo "</ul>"; } ?>{/php} {php}<?php $array = $zbp->db->sql->get() ->select($zbp->table['Category']) ->where(array('=', 'cate_RootID', $category->ID)) ->query; foreach($array as $key => $value){ foreach ( GetList(5,$value["cate_ID"]) as $article) { echo '<li><a href="'.$article->Url.'">'.$article->Title.'</a></li>'; } } ?>{/php} {php}<?php $_cates = $zbp->db->sql->get()->select($zbp->table['Category'])->where(array('=', 'cate_RootID', $category->ID))->query; foreach($_cates as $_cate){ foreach ( GetList(5,$_cate["cate_ID"]) as $article) { echo '<li><a href="'.$article->Url.'">'.$article->Title.'</a></li>'; } } ?>{/php}