zblog模板和程序默认并不存在让其中某些分类不显示的功能,而现在又有不少博客喜欢在博客中建设更多分类,某些分类或者因为隐私或者琐事不相关,不想让某些分类的文章显示在首页,那么如何解决呢?
今天来分享两个首页不显示置顶分类的方法:
方法一:
分析:要在首页不显示,就是判断下这个文章的分类,可以这样分析吧。代码如下:
{if $article.Category.Name=='分类的名称'} {elseif $article.IsTop} {template:post-istop} {else} {template:post-multi} {/if}
方法二:
实现的方法:
通过函数过滤指定分类,重建分页后,挂接Filter_Plugin_ViewList_Core
接口。接口位置:zb_system/function/c_system_event.php
,有兴趣可自行研究。
教程代码:
1、1、在主题的include.php文件最后一行的?>
上面添加以下函数代码:
function exclude_category(&$type,&$page,&$category,&$author,&$datetime,&$tag,&$w,&$pagebar){ global $zbp; if($type == 'index'){ $w[]=array('<>','log_CateID',1); //以下是为了重建分页,过滤了分类,数量会发生变化 $pagebar = new Pagebar($zbp->option['ZC_INDEX_REGEX']); $pagebar->PageCount = $zbp->displaycount; $pagebar->PageNow = $page; $pagebar->PageBarCount = $zbp->pagebarcount; } }
以上代码第四行中的1是要排除的分类ID,分类ID请在后台分类管理中查看。
2、在主题激活时执行的函数中(一般是ActivePlugin_主题ID(){}
)添加以下代码:
Add_Filter_Plugin('Filter_Plugin_ViewList_Core','exclude_category');
3、保存后即可生效!
注意:这里的分类ID也可以在主题配置内设置,更加方便,而不需要每次都去修改include.php文件才能解决zblog模板首页不显示某些分类!
来源:http://www.boke8.net/zblogphp-exclude-cateogry-in-list.html