zblog调用某个指定分类的文章教程

talklee

温馨提示:这篇文章已超过1888天没有更新,请注意相关的内容是否还可用!

最近在完善最新的锦鲤主题,然鹅在测试微语功能时候还是出现了偏差,所以在这里简单的啰嗦几句,或许有大神看完此篇文能给予我更多的帮助也说不定哈。。。

之前的微语已经完成了,首先去判断一个分类,如果是的话则显示微语,如果不是则正常显示列表,但是发布主题之后,大家觉得这种方式并不完美,因为当有新文章发布的时候微语就不会显示在首位,那么看上去并不符合大众审美(一部分人的大众),所以我又重新写代码(不一定都是自己写的,也有百度搜来的)。

zblog调用某个指定分类的文章教程 第1张

首先还是判断微语是的话显示且只显示最新的一篇,其余的不显示在首页,而且可以固定首位,然后在分类的列表排除微语分类的文章,这么以来还算可以啊,但是又出现一个问题,比如:首页调用最新的12篇文章,其中6篇都是最新发布的,因为代码只显示最新的一篇(也就是6=1)那么其他文章就只能显示4篇,所有输出之后即使设置的是12篇,但其实真正显示的却只有4篇而已(逻辑有点乱,MD,别急慢慢缕缕,内心独白:我能怎么办,我也很绝望的好不)。

zblog调用某个指定分类的文章教程 第2张

既然还是存在问题就得继续修改,终于看见天兴发布的教程“调用置顶分类的文章”需要加逻辑判断(这次还算是完美),首先判断是否开启微语功能,如果开启则显示微语分类,然后在显示除了微语之外的分类文章,举个例子:微语列表的分类ID是“10”那么在显示指定分类文章的时候,不获取ID为“10”的文章就可以了,这样一来,首位是微语且首页调用文章的数量也是对的。

附上天兴大神的代码(据说是自鸟儿写的,为什么是据说?因为天兴自己说的。。。emmmmmm)

复制以下代码粘贴到你在使用的主题中的“include.php”里面(别问我位置,只要不是第一行和最后一行一般都是可以的):

function 主题ID_GetArticleCategorys($Rows,$CategoryID,$hassubcate){
    global $zbp;
    $ids = strpos($CategoryID,',') !== false ? explode(',',$CategoryID) : array($CategoryID);
    $wherearray=array(); 
    foreach ($ids as $cateid){
      if (!$hassubcate) {
        $wherearray[]=array('log_CateID',$cateid); 
      }else{
        $wherearray[] = array('log_CateID', $cateid);
        foreach ($zbp->categorys[$cateid]->SubCategorys as $subcate) {
          $wherearray[] = array('log_CateID', $subcate->ID);
        }
      }
    }
    $where=array( 
      array('array',$wherearray), 
      array('=','log_Status','0'), 
    ); 
    $order = array('log_PostTime'=>'DESC'); 
    $articles=    $zbp->GetArticleList(array('*'),$where,$order,array($Rows),'');     
    return $articles;
}

前台调用方法:

{foreach $array=主题ID_GetArticleCategorys(10,'1,2,3',true)  as $related}
    <li><a href="{$related.Url}" target="_blank">{$related.Title}</a></li>
{/foreach}

依次解释下“ 10“,”1,2,3”代表的是什么(为什么不解释“include.php”这段代码?因为,我也看不懂,所以解释不了。)10就是调用的文章数量,对嘛,1,2,3(数字之间用英文状态下的逗号,隔开)自然就是调用的分类嘛,小伙子你很聪明哈。整体的意思就是:调用分类为:1,2,3下的10篇文章。哦对了,你还别说,还真得介绍一些“include.php”里的某段代码(你可能会说,你刚才不是说你不会么,那现在怎么又会了呢?对,我是不会,但是天兴作者会呀,他怎么说我就怎么说呗,没毛病~~~)“array('log_PostTime'=>'DESC');”大概是第19行,

log_PostTime=按照时间排序;
log_CommNums=按照评论数量排序;
log_ViewNums=按照浏览数量排序;

最后按照需要自己DIY吧,好嘞,问题终于解决了,而且是完美的解决,接下来我就把微语用分类ID显示的功能取消了,,,你没看错,是取消了,不是修改了,为什么?因为太复杂,我用最简洁的方式取缔了它,你想知道是什么么?哈哈,赶快去更新主题来自己体验吧。

文章版权声明:除非注明,否则均为李洋个人博客原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (有 8 条评论,6993人围观)
网友昵称:情感咨询
情感咨询 V 游客 Google Chrome 67.0.3396.99 Windows 7 x64 凉席
2019-04-02 来自广东 回复
坚持是不易的,文章不错,写的很好!
网友昵称:talklee
talklee V 博主 Sogou Explorer Windows 7 x64
2019-04-03 来自上海 回复
@情感咨询 站长就是那么回事,且做且珍惜吧。
网友昵称:1006
1006 V 游客 Google Chrome 63.0.3239.132 Windows 10 x64 板凳
2019-02-25 来自广东 回复
有用,拿去了。。。
网友昵称:talklee
talklee V 博主 Sogou Explorer Windows 7 x64
2019-02-25 来自上海 回复
@1006 拿走不谢~
网友昵称:攸一软件网
攸一软件网 V 游客 Baidu Browser 8.7 Windows 10 x64 椅子
2019-02-21 来自上海 回复
文章不错,写的很好!
网友昵称:talklee
talklee V 博主 Sogou Explorer Windows 7 x64
2019-02-22 来自上海 回复
@攸一软件网 谢谢支持
网友昵称:我爱技术网
我爱技术网 V 游客 MQQBrowser 8.1 Android 8.0 沙发
2019-02-21 来自广东 回复
膜拜大佬
网友昵称:talklee
talklee V 博主 Sogou Explorer Windows 7 x64
2019-02-22 来自上海 回复
@我爱技术网 膜拜自己吧还是。。。

目录[+]