今天有主题使用的小伙伴来问在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);