关于ZBLOG首页过滤某个分类文章并重建分页的正确方法

技巧2021-07-08 隔壁老李于 2021-07-08 20:44:11 最后编辑

最近做一个主题需要加一个首页文章列表过滤某些分类的功能

于是一通搜索,然而发现网上所有的方法都是错误或者是不完整的

这也是本文标题为什么用了[正确]这个词的原因

迄今为止,网上所有的首页不显示指定分类文章的方法都是转载的涂涂研版的文章

方法如下:

挂接口:

Add_Filter_Plugin('Filter_Plugin_ViewList_Core','everbox_articles_xs');

函数体:

function everbox_articles_xs(&$type,&$page,&$category,&$author,&$datetime,&$tag,&$w,&$pagebar){
	global $zbp;	
	if($type == 'index'){
		$w[]=array('<>','log_CateID',27);
		//以下是为了重建分页,过滤了分类,数量会发生变化
		$pagebar = new Pagebar($zbp->option['ZC_INDEX_REGEX']);
		$pagebar->PageCount = $zbp->displaycount;
		$pagebar->PageNow = $page;
		$pagebar->PageBarCount = $zbp->pagebarcount;
	}	
}

说明:上面的27指的是你不想显示的分类的ID。

然而这个方法是有错误的!

此方法虽然达到了过滤效果,也不会有多余的错误分页,但是第一页链接却会出错

比如本博按照上面的方法设置后,第一页的url变成了:https://yeelz.com/page.html,而正确的第一页链接是:https://yeelz.com/

于是在开发群请教了涂涂研版,出错原因是当初他少写了两个true!

而网上的各种转载者根本不做任何验证就直接复制粘贴,导致现在搜索出的所有结果都是错误的!!!

正确的函数如下:

function everbox_articles_xs(&$type,&$page,&$category,&$author,&$datetime,&$tag,&$w,&$pagebar){
	global $zbp;	
	if($type == 'index'){
		$w[]=array('<>','log_CateID',27);
		//以下是为了重建分页,过滤了分类,数量会发生变化
		$pagebar = new Pagebar($zbp->option['ZC_INDEX_REGEX'], true, true);
		$pagebar->PageCount = $zbp->displaycount;
		$pagebar->PageNow = $page;
		$pagebar->PageBarCount = $zbp->pagebarcount;
	}	
}

最后突然想到了谣言也是因为毫无验证的转发而可能造成不良的后果。

果然人类的本质就是复读机吗?!

关于ZBLOG首页过滤某个分类文章并重建分页的正确方法  第1张

赞赏
取消
扫码支持
评论 (0)
访客
Top