今天突然想起很久以前想搞的 Typecho 二级菜单,那时候搜不到资料就没搞。今天搜索了一下,1.0版本貌似支持多级目录了,需要用CSS控制。

<?php $this->widget('Widget_Metas_Category_List')->listCategories('wrapClass=widget-list'); ?>

但是这串代码并不适用我这个主题,于是输出调试信息并我研究了一下源码,自己捣鼓了一个。

效果图如上,如果其他朋友有这个需求,可以参照我下面的代码。毕竟我不是职业选手,所以代码不是很优雅,如果你看完我的代码有启发,并且写出了更加优雅的代码,我很乐于学习并且应用到我的主题中。

                    <?php $this->widget('Widget_Metas_Category_List')->to($categorys); ?>
                    <?php while($categorys->next()): ?>
                        <?php if ($categorys->levels === 0): ?>
                            <?php $children = $categorys->getAllChildren($categorys->mid); ?>
                            <?php if (empty($children)) { ?>
                                <li <?php if($this->is('category', $categorys->slug)): ?> class="active"<?php endif; ?>>
                                    <a href="<?php $categorys->permalink(); ?>" title="<?php $categorys->name(); ?>"><?php $categorys->name(); ?>
                                        <span class="badge"><?php $categorys->count(); ?></span></a>
                                </li>
                            <?php } else { ?>
                                <li class="dropdown">
                                    <a class="dropdown-toggle" data-toggle="dropdown" href="#" data-target="#"><?php $categorys->name(); ?> <b class="caret"></b></a>
                                    <ul class="dropdown-menu">
                                        <?php foreach ($children as $mid) { ?>
                                            <?php $child = $categorys->getCategory($mid); ?>
                                            <li <?php if($this->is('category', $mid)): ?> class="active"<?php endif; ?>>
                                                <a href="<?php echo $child['permalink'] ?>" title="<?php echo $child['name']; ?>"><?php echo $child['name']; ?>
                                                    <span class="badge" style="float:right;"><?php echo $child['count']; ?></span></a>
                                            </li>
                                        <?php } ?>
                                    </ul>
                                </li>
                            <?php } ?>
                        <?php endif; ?>
                    <?php endwhile; ?>
转载保留版权:http://haipz.com/blog/i/6497 - 海胖博客