typecho输出一级二级子菜单目录的修改记录

前言

如何将typehco所有的一二三级目录都调出来呢,其实方法很多,这里说其中一个方法。typecho本身就自带了一个叫listCategories的函数可以穷举所有的目录列表。

具体用法:

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

过程

事实上,这个函数调用方便但自定义方面就不是很友好。如果你想更改输出的名称、href内容等就不行。后来发现可以通过修改treeViewCategoriesCallback来更改listCategories分类列表代码:

Widget_Metas_Category_List 的主函数位置typecho/var/Widget/Metas/Category/List.php

/**
 * 列出分类回调
 *
 * @access private
 */
private function treeViewCategoriesCallback()
{
    $categoryOptions = $this->_categoryOptions;
    if (function_exists('treeViewCategories')) {
        return treeViewCategories($this, $categoryOptions);
    }
    $classes = array();
    if ($categoryOptions->itemClass) {
        $classes[] = $categoryOptions->itemClass;
    }
    $classes[] = 'category-level-' . $this->levels;
    echo '<' . $categoryOptions->itemTag . ' class="'
        . implode(' ', $classes);

    if ($this->levels > 0) {
        echo ' category-child';
        $this->levelsAlt(' category-level-odd', ' category-level-even');
    } else {
        echo ' category-parent';
    }
    if ($this->mid == $this->parameter->current) {
        echo ' category-active';
    } else if (isset($this->_children[$this->mid]) && in_array($this->parameter->current, $this->_children[$this->mid])) {
        echo ' category-parent-active';
    }
    echo '"><a href="' . $this->permalink . '">' . $this->name . '</a>';
    if ($categoryOptions->showCount) {
        printf($categoryOptions->countTemplate, intval($this->count));
    }
    if ($categoryOptions->showFeed) {
        printf($categoryOptions->feedTemplate, $this->feedUrl);
    }
    if ($this->children) {
        $this->treeViewCategories();
    }
    echo '</' . $categoryOptions->itemTag . '>';
}

我在薯仔投是左边目录导航中就做了如下修改:

echo '"><a href="' . $this->permalink . '">' . $this->name . '</a>';
改为
echo '"><a href="#' . $this->slug. '">' . $this->name . '</a>';

效果图

其实作用就是为了做一个跳转。这里就记录一下。

参考:
github
Typecho获取指定ID的子类列表
typecho 父分类 和子分类的UL的class如何让他不一样啊

阅读量: | 柯西君_BingWong | 2019-11-22