今天有主題使用的小伙伴來問在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];
    }
}

上面的含義

国产视频app1、調用分類數據時,會有一個Parent對象來輸出當前類的上級分類

国产视频app2、如果有上級分類就會通過 Parent 對象來輸出上級分類的數據

3、如果沒有上級分類,則返回空

z-blog模版中調用分類及上級分類的代碼

當前分類代碼:

国产视频app分類模版中調用當前分類時,直接輸出數據即可。

{$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通過分類的名稱獲取分類數據的方法

QQ截圖20190724142950.jpg

<?php
$name = '筆記';
$cate = $zbp->GetCategoryByName($name);
//代碼省略,參考上面的示例
?>

国产视频app3、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);