今天有主题使用的小伙伴来问在z-blog中通过分类获取上级分类的方法,以防以后再重复回答这个问题,就写个教程吧,有需要的可以拿走。
这部份内容,如果不是开发者可以直接跳过,这里只是说明一下在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、如果没有上级分类,则返回空
当前分类代码:
分类模版中调用当前分类时,直接输出数据即可。
{$category.Url} 当前分类的URL {$category.Name} 当前分类的名称
判断是否有上级分类,并输出
{if $category.Parent} {$category.Parent.Url} {$category.Parent.Name} {/if}
注意:以上代码只能用到主题分类模版中,在z-blog后台编译模版后,在会缓存文件中自动生成普通的php代码。
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、具体的可以参考以下代码
函数
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);
备注:来源于《飞鸟募鱼》
深圳网站建设电话:13510778477 姚先生
深圳网站推广电话:13715035554 刘先生
地址:深圳市南山区西丽镇龙珠五路南汾大厦416