主题OL

zblogphp首页最新文章列表不显示指定某(些)分类中文章的代码方法

ZTOL ZBlog开发教程 2022-05-05 2.6千 0

zblog模板和程序默认并不存在让其中某些分类中的文章不在首页最新文章列表中显示的功能,而现在又有不少网站因为某些特定的原因,不想让一些分类中的文章在首页最新文章列表中出现(如:文章会重复显示,或部分分类中的文章并不主要,无需占用首页那么重要的位置),那么如何解决呢?代码应该怎样写?

其实,想要实现这个目的,是有两种方法的,这里只给大家说一种,而另一种因为太low了,这里就不写出来了!

1,我们要先在ZBLOG模板里挂载一个接口:Filter_Plugin_ViewList_Core

Add_Filter_Plugin('Filter_Plugin_ViewList_Core','themeolnews_Index_ViewList');

2,完善这个接口中的themeolnews_Index_ViewList函数代码

function themeolnews_Index_ViewList(&$type,&$page,&$category,&$author,&$datetime,&$tag,&$w,&$pagebar){
    global $zbp;
    if($type == 'index') {
        $indexDelCateListIDStr=$zbp->Config('themeolnews')->indexDelCateListIDStr;//这是后台主题配置中的分类ID列表,字符串的形式
        $indexDelCateListIDArray = strpos($indexDelCateListIDStr,',') !== false ? explode(',',$indexDelCateListIDStr) : array($indexDelCateListIDStr);
        foreach($indexDelCateListIDArray as $indexDelCateListID){
            $w[]=array('<>','log_CateID',(int)$indexDelCateListID);
        }
        //其实从此往下的代码不写,我们的目的也实现了,但,这并不完美,我们还要重建分页,因为过滤了分类,文章数量会发生变化
        $pagebar = new Pagebar($zbp->option['ZC_INDEX_REGEX']);
        $pagebar->PageCount = $zbp->displaycount;
        $pagebar->PageNow = $page;
        $pagebar->PageBarCount = $zbp->pagebarcount;
    }
}

到此,我们的zblog模板就可以实现在首页最新文章列表中排除某(些)指定分类文章的目的了,大家只要熟悉ZBLOGPHP的接口,剩下的处理起来就简单了!

发表评论

用户头像 游客
此处应有掌声~

评论列表

还没有评论,快来说点什么吧~

QQ在线客服

客户服务

在线时间 上午:09:00-12:00 下午:14:00-21:00