有的时候,我们并不想要某个分类栏目的文章显示在zblogphp首页的中,也就是说,我们可以让某一个或多个分类ID下的文章隐藏不显示在网站首页中,操作方法如下:
第一种:判断分类方式
此方法可以通过指定分类ID或分类名称来判断,如果判断是指定的分类栏目,就让它显示空就行了!
找到当前主题模板文件中的首页index.php模板文件,然后,将下面的代码放到适当的位置,记得修改分类ID。{foreach $articles as $article}
{if $article.Category.ID=='分类ID'}
{elseif $article.IsTop}
{template:post-istop}
{else}
{template:post-multi}
{/if}
{/foreach}
上面这段代码是通过指定分类ID来实现的,只要将其中的“分类ID”替换成某个分类ID的数字即可,如果想通过分类名称来实现判断的话,就把{if $article.Category.ID=='分类ID'}替换成{if $article.Category.Name=='分类的名称'}即可!
第一种方法只能指定一个分类栏目,想要指定多个分类栏目,请查看接下来的第二种方法!
第二种:挂接接口方式
第一步:在主题目录下新建一个include.php文件,如果已经存在,可以跳过此步。
在当前主题目录下新建一个include.php的文件,然后,将下面的代码放入其中进行注册:<?php
RegisterPlugin("主题ID","ActivePlugin_主题ID"); //注册插件
?>
请注意不同的主题,ID也不相同,记得把“主题ID”修改成你当前的主题ID。
主题ID就是zb_users/theme/目录里面对应的文件名
第二步:在include.php文件中放入下面用于挂接口的代码Add_Filter_Plugin('Filter_Plugin_ViewList_Core','主题ID_Exclude_Category');
别忘记了把“主题ID”替换成正确的主题ID;
第三步:在第二步代码的后面,再添加一个名为“主题ID_Exclude_Category”的函数:function 主题ID_Exclude_Category(&$type,&$page,&$category,&$author,&$datetime,&$tag,&$w,&$pagebar){
global $zbp;
if($type == 'index'){//这里只是在首页隐藏,像tag页面,author页面,datetime页面等,可以按需使用.
$w[]=array('<>','log_CateID',1);//此处修改隐藏文章的分类ID
//下面是重建分页
$pagebar = new Pagebar($zbp->option['ZC_INDEX_REGEX']);
$pagebar->PageCount = $zbp->displaycount;
$pagebar->PageNow = $page;
$pagebar->PageBarCount = $zbp->pagebarcount;
}
}
注意:函数中第4行的数字“1”,是分类的ID,想要隐藏不显示哪个分类,替换成对应的分类ID即可。
如果想隐藏多个分类,可以把第四行代码多复制几次,然后,替换上想要隐藏不显示的分类ID即可。
比如,我想要在首页隐藏分类ID是1、2、3的三个分类的文章,就只需要重复三次,并分别替换上1、2、3即可,如下所示:$w[]=array('<>','log_CateID',1);
$w[]=array('<>','log_CateID',2);
$w[]=array('<>','log_CateID',3);
分类ID可在分类管理里面找到,如下图所示:
最后,别忘记了修改“主题ID”为include.php文件所属的主题ID,第二步和第三步的代码都必须放在<?php和 ?>之间才有效!