从当时有人提出想增加二级分类到现在已经半年了,终于在闲着蛋疼的情况下撸了出来,比想象中简单很多 - -

要改的代码其实不多,就是改了一下原来遍历输出增加了条件判断

下拉插件请参考

了解typecho的API感觉真不容易,文档个人感觉并不全

首先在遍历 category 时需要判断该 category 是否有children
<?php if(count($category->children)):?>

有的话就遍历该category的children

    <ul class="dropdown-menu">
        <li><a href="<?php echo $category->permalink(); ?>"><?php echo $category->name ?></a></li>
        <?php foreach($category->children as $k=>$v):?>
            <li><a href="<?php echo $v['permalink'] ?>"><?php echo $v['name'] ?></a></li>
        <?php endforeach; ?>
    </ul>

因为该下拉组件点击时只显示子分类,也就是说你无法跳转到父分类的URL!
所以这里在遍历前就输出了浏览父分类的 URL

那么没有children是不是就直接像以前直接输出就好了呢?
并不是,因为这样你会把所有子分类都会输出出来

我们 print_r($category) 来看看category有什么信息

可能需要翻墙看

我设置了3个category,分别是 父类 子类1 子类2
可以看到directory的区别,directory 是父类的话会只有一个元素
但并不是通过directory判断,而是levels,0表示根目录,1表示二级目录以此类推

然后我们接着写

<?php if($category->levels == 0):?>

假若levels是0就输出,非0就不用管了

到这里就基本结束了,有什么建议或bug欢迎提到我 github 的issue上