zblog如何让首页不显示指定分类ID栏目的文章(可隐藏多个分类)

有的时候,我们并不想要某个分类栏目的文章显示在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的文件,然后,将下面的代码放入其中进行注册:

<?phpRegisterPlugin("主题ID","ActivePlugin_主题ID"); //注册插件?>

请注意不同的主题,ID也不相同,记得把“主题ID”修改成你当前的主题ID。

主题ID就是zb_users/theme/目录里面对应的文件名

zblog如何让首页不显示指定分类ID栏目的文章(可隐藏多个分类)

第二步:在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可在分类管理里面找到,如下图所示:

zblog如何让首页不显示指定分类ID栏目的文章(可隐藏多个分类)

最后,别忘记了修改“主题ID”为include.php文件所属的主题ID,第二步和第三步的代码都必须放在<?php和?>之间才有效!

相关文章

最新主题