今天有主题使用的小伙伴来问在z-blog中通过分类获取上级分类的方法,以防以后再重复回答这个问题,就写个好代码教程吧,有需要的可以拿走。
查看zblog中获取上级分类的代码
这部份内容,如果不是开发者可以直接跳过,这里只是说明一下在zblog中默认获取当前分类的上级分类的代码。
打开文件 zb_system/function/lib/category.php 142行左右
if ($name == 'Parent') { if ($this->ParentID == 0) { return; } else { return $zbp->categories[$this->ParentID]; } }
上面的含义
1、调用分类数据时,会有一个Parent对象来输出当前类的上级分类
2、如果有上级分类就会通过 Parent 对象来输出上级分类的数据
3、如果没有上级分类,则返回空
z-blog模版中调用分类及上级分类的代码
当前分类代码:
分类模版中调用当前分类时,直接输出数据即可。
{$category.Url} 当前分类的URL {$category.Name} 当前分类的名称
判断是否有上级分类,并输出
{if $category.Parent} {$category.Parent.Url} {$category.Parent.Name} {/if}
注意:以上代码只能用到主题分类模版中,在z-blog后台编译模版后,在会缓存文件中自动生成普通的php代码。
z-blog获取分类的代码
1、z-blog通过分类ID获取分类数据的代码
<?php $id = '1'; $cate = $zbp->GetCategoryByID($id); echo $cate->Url; //分类的URL echo $cate->Name; //分类的名称 //判断是否有上级分类 if($cate->Parent){ echo $cate->Parent->Url; //上级分类的URL echo $cate->Parent->Name; //上级分类的名称 } ?>
2、z-blog通过分类的名称获取分类数据的方法
<?php $name = '笔记'; $cate = $zbp->GetCategoryByName($name); //代码省略,参考上面的示例 ?>
3、zblog通过分类别名获取分类数据的代码
<?php $name = 'biji'; $cate = $zbp->GetCategoryByAlias($name); //代码省略,参考上面的示例 ?>
4、以类的形式获取分类的数据
$id = 1; //这是分类的ID $cate = new Category(); $cate->LoadInfoByID($id); if($cate->ID){ echo $cate->Url; //分类的URL echo $cate->Name; //分类的名称 //判断是否用上级分类 if($cate->Parent){ echo $cate->Parent->Url; //上级分类的URL echo $cate->Parent->Name; //上级分类的名称 } }else{ echo '分类数据不存在'; }
注意:
1、以上示例中的代码,可以用到主题或插件的后台逻辑中去,不能用到主题模版文件中,如果使用需要改成模版的语法。
2、如果在某个函数中调用以上的代码,必需声明全局变量,$zbp
3、无论是通过ID,名称,别名获取分类的数据,必需判断返回的结果是否为空。
4、具体的可以参考以下代码
例:z-blog判断指定的分类是否存在
函数
function IsCate($id){ // //声明全局变量 $zbp; global $zbp; $cate = $zbp->GetCategoryByID($id); //判断分类是否存在 //如果存在, $cate->ID 为分类的ID //如果不存在,$cate->ID 为0 if($cate->ID){ return 存在; } return 不存在; }
调用方法:
判断ID为4的分类是否存在
echo IsCate(4);
本文z-blog获取分类以及上级分类的代码到此结束。此岸,彼岸,终究是尘归尘,土归土。一季绯红也只是一季花凉,几许艳丽,几许妩媚,几经风雨,尘埃落地。活着,就要慢慢老去,途径坎坷,感受悲喜,生命最终是寂灭。缘有长短,人有来去,再深的情也会淡泊,再浓的意也会无痕,初见永远不会再见。小编再次感谢大家对我们的支持!