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
$w['where_custom']=array(array('search', 'log_Template', 'serve')); //不显示置顶
$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}