zblog通过getlist调用文章并过滤某分类文章
有些用户在使用zblog中,需要调用一些文章,但是同时并不想某个分类的文章也显示出来。那么有什么办法做到呢?
首先看看正常的调用方法:
$result = GetList(array('count'=>10)) //返回array(Post类型) 或是 空array()代码来源于官方文档,在查看此方法的具体使用参数,array 参数如下:
array(
'count' => 10, //(文章数量,可省略)
'cate' => 1, //(分类ID,可省略)
'auth' => 2, //(作者ID,可省略)
'date' => '2020-1', //(可省略)
'tags' => 'abc', //(标签名,可省略)
'search' => 's', //(搜索词,可省略)
//以下是原$option 参数的 key 键
'post_type' => null, //指定查询 Post 表的类型 (0文章,1单页 可省略)
'post_status' => null, //指定查询 Post 表的状态 (0公开 1草稿 2审核 可省略)
'only_ontop' => false, //指定全是置顶 (可省略)
'only_not_ontop' => false, //指定全不是置顶 (可省略)
'has_subcate' => false, //指定包含子孙目录 (可省略)
'is_related' => '文章id', //指定查询相关文章 (可省略)
'order_by_metas' => false, //指定按 Metas 值排序输出结果 (可省略)
'random' => 5, //指定抽取 5 篇 Post 表的记录 (可省略)
'where_custom' => array(array('>', 'log_PostTime', '1657884349')), //自定义 where
'order_custom' => array('log_ViewNums' => 'DESC', 'log_CommNums' => 'ASC'), //自定义 order)可以看出option键里面包含了方法,可以通过自定义where,设置文章分类不等于某分类ID,那么不就是可以实现了吗。
具体代码如下:
$array = GetList(array('count'=>10,'where_custom' => array(array('<>', 'log_CateID', 1))));这样就可以完美实现了,只需要修改数字1的值为对应分类ID即可。
{elseif $module.FileName=='resou'}
<div class="widget resou">
<h4>热门文章</h4>
<ul class="widget_ul">
{foreach GetList(6,$article.Category.ID,null,null,null,null,array('has_subcate' => true,'order_custom' => array('log_ViewNums' => 'DESC', 'log_CommNums' => 'ASC'),'where_custom' => array(array('<>', 'log_ID', $article.ID)))) as $related}
<li>
<div class="img">
<a href="{$related.Url}"><img src="{if $related->Metas->pic}{$related->Metas->pic}{elseif $zbp->Config('ydbaijia')->thumb2}{ydbaijia_thumb2($related,225,120,0)}{else}{ydbaijia_thumbnail($related)}{/if}" alt="{$related.Title}"></a>
</div>
<div class="infos">
<a title="{$related.Title}" href="{$related.Url}">{$related.Title}</a>
<br/>
<span>{if $zbp->Config( 'ydbaijia' )->timestyle=='1'}{$related.Time('m-d')}{else}{ydbaijia_TimeAgo($related.Time())}{/if} | 阅读:{$related.ViewNums}</span>
{/foreach}
</div>
</li>
</ul>
</div>

评论专区