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}
输出:
例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}