从当时有人提出想增加二级分类到现在已经半年了,终于在闲着蛋疼的情况下撸了出来,比想象中简单很多 - -
要改的代码其实不多,就是改了一下原来遍历输出增加了条件判断
了解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上