ZBlog GetList()函数

摘要:GetList 函数 通过GetList可以获取自定义的文章列表,如指定分类的最新文章、置顶文章等等

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}