typecho不显示(隐藏)某个特定分类 - 夏目友人帐

typecho不显示(隐藏)某个特定分类

"夏目贵志" 发表于: 2018年05月28日

最近在对钛导航进行改版,需要实现不显示某个特定分类的功能,查看typecho官方文档毫无头绪,在网上查询到的代码也无法实现隐藏分类功能,最后误打误撞实现。

typecho现有的输出所有分类

 $this->widget('Widget_Metas_Category_List')

网上查到的相关代码,其中ignore表示要隐藏的分类mid

$this->widget('Widget_Metas_Category_List','ignore=1')

但通过上面的代码无法实现隐藏功能,查看系统文件,最后在/var/Widget/Metas/Category/Edit.php中看到了下面这段代码

/** 父级分类 */
$options = array(0 => _t('不选择'));
$parents = $this->widget('Widget_Metas_Category_List@options', 
    (isset($this->request->mid) ? 'ignore=' . $this->request->mid : ''));
 
while ($parents->next()) {
    $options[$parents->mid] = str_repeat('    ', $parents->levels) . $parents->name;
}

这代码看着很熟悉有木有,上面有个@options的字符串不知道是啥,毕竟PHP盲,尝试把@options加进去,KO,搞定!

最后的代码

<?php $this->widget('Widget_Metas_Category_List@options','ignore=1')->to($categories); ?>

最近在对钛导航进行改版,需要实现不显示某个特定分类的功能,查看typecho官方文档毫无头绪,在网上查询到的代码也无法实现隐藏分类功能,最后误打误撞实现。

typecho现有的输出所有分类

 $this->widget('Widget_Metas_Category_List')

网上查到的相关代码,其中ignore表示要隐藏的分类mid

$this->widget('Widget_Metas_Category_List','ignore=1')

但通过上面的代码无法实现隐藏功能,查看系统文件,最后在/var/Widget/Metas/Category/Edit.php中看到了下面这段代码

/** 父级分类 */
$options = array(0 => _t('不选择'));
$parents = $this->widget('Widget_Metas_Category_List@options', 
    (isset($this->request->mid) ? 'ignore=' . $this->request->mid : ''));
 
while ($parents->next()) {
    $options[$parents->mid] = str_repeat('&nbsp;&nbsp;&nbsp;&nbsp;', $parents->levels) . $parents->name;
}

这代码看着很熟悉有木有,上面有个@options的字符串不知道是啥,毕竟PHP盲,尝试把@options加进去,KO,搞定!

最后的代码

<?php $this->widget('Widget_Metas_Category_List@options','ignore=1')->to($categories); ?>

文章作者:运营狗

原文链接:https://www.seogo.me/tec/172.html

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

添加新评论

已有 2 条评论

  1. 钛导航是你的网站

    1. @Roogle

      不是 作者@https://www.seogo.me/