导航菜单
登录 注册

navmenu.png
navmenu.png

插件特点:

  1. 多菜单支持
  2. 支持分类、独立页面和自定义页面链接
  3. 支持编辑菜单项(自定义菜单名称,自定义class, 新窗口等)
  4. 可拖动设置顺序和层级
  5. 菜单结构可自定义,方便个性化布局
  6. 支持内置变量替换,使用内置页面即可
  7. 支持删除菜单

安装说明

将插件克隆到本地, 放到 usr/plugins 目录下即可。

插件说明

INFO

此插件早在2015年原作者merdan在大三时就已完成。当时只支持单个菜单,后来抽点时间改成多菜单支持。

最近站长用到了这个插件,发现这个插件存在许多bug,一一修复并发布到 Github。

使用方法

  1. 后台启用插件
  2. 进入主菜单 控制台->菜单管理 即可看到菜单设置页面。
  3. 默认有名为default 的菜单,在左侧新增菜单可以新增。
  4. 左下方的菜单项里可添加分类,独立页面、内置页面和自定义链接到右侧菜单结构中。
  5. 拉动菜单结构可以调整菜单顺序和层次。
  6. 调整完了之后 务必点击 保存设置 按钮进行保存,否则菜单不会生效
  7. 在主题中使用一下方法调用菜单:
<?php Typecho_Widget::widget('NavMenu_List')->navMenu('header'); ?>
  1. 当前菜单有相应的 .current class 名,可进行菜单高亮等布置

调用函数说明:

/**
 * @param string $menu 菜单名称
 * @param null $navOptions 菜单配置
 */
public function navMenu($menu = 'default', $navOptions = NULL)

菜单配置项

[
    'wrapTag' => 'ul', // 菜单项的容器
    'wrapClass' => '', // 容器自定义class
    'wrapId' => '', // 容器自定义ID (二级菜单展开等功能可使用ID 去解决)
    'itemTag' => 'li', // a 链接的容器
    'itemClass' => '{has-children}menu-has-children{/has-children}', // 容器自定义class
    'item' => '<a class="{class}" href="{url}" {target}>{name} {caret}</a>', // a 链接模板
    'linkClass' => '', // a 链接的 class
    'subMenu' => '<ul class="{class}">{content}</ul>', // 子菜单的包裹模板
    'current' => 'current', // 当前菜单的类名
    'caret' => '+' // 有子菜单的菜单添加提示下拉图标 item 属性中的 {caret} 会被替换为这个属性
];

比如我要输出 bootstrap 的菜单

Typecho_Widget::widget('NavMenu_List')->navMenu('header', [
    'wrapTag' => 'ul',
    'wrapClass' => 'navbar-nav me-auto mb-2 mb-lg-0',
    'itemClass' => 'nav-item {has-children}dropdown{/has-children}',
    'item' => '<a class="{class} {has-children}dropdown-toggle{/has-children}" href="{url}">{name}</a>',
    'linkClass' => 'nav-link',
    'subMenuClass' => 'dropdown-menu',
    'current' => 'active'
]);

插件截图

NavMenu插件预览
NavMenu插件预览

其他

WARNING

插件没有提供前端菜单样式,请自行根据主题制作

INFO

后台菜单结构拖动有点问题, 但可以正常使用,已经修复这个问题了

更新日志

2023.05.09 更新至 1.12 版本,增加几个输出属性
2022.04.29 更新至 1.11 版本,修复 PHP 8.0 报错,修复删除菜单后提示菜单不存在

资源下载

ArticlePoster:开源Typecho海报插件
上一篇
XEditor 一款基于 Vditor 的 Markdown 编辑器 for Typecho
下一篇

精选留言

已有 138 条评论

  1. jaychen
    • 广东省

    不错不错,刚好做网站要用到

  2. oo
    • 福建省

    为v地方v大幅波动

  3. zcvs
    • 河南省

    这个需要好好学习

  4. peter
    • 菲律宾

    感谢分享

  5. ohho
    • 山西省

    学习学习

  6. 654
    • 陕西省

    好

  7. hema
    • 北京市

    感谢分享!

  8. 老王
    • 广东省

    试试,支持一下

  9. xia8098
    • 河北省

    这个需要好好学习

  10. 11
    • 四川省

    地址失效了,怎么下载

  11. 小树叶
    • 陕西省

    大佬,我想加到首页顶部导航栏那里,应该把《在主题中使用一下方法调用菜单:
    <?php Typecho_Widget::widget('NavMenu_List')->navMenu('header'); ?>》加在哪里

      1. 小树叶
        • 陕西省

        谢谢大佬您的回复,但是我现在插件点击启用直接提示无法启用插件

      2. 小树叶
        • 陕西省

        原来是插件忘了改名了,我把这个<?php Typecho_Widget::widget('NavMenu_List')->navMenu('header'); ?>放在了

      3. 小树叶
        • 陕西省

        但是出现了这个Warning: require_once(/www/wwwroot/35.41.25.36/usr/plugins/NavMenu/NavMenu/panel/nav-menus.php): failed to open stream: No such file or directory in /www/wwwroot/35.41.25.36/admin/extending.php on line 23

        1. Ryan
          • 未知地区

          目录嵌套了,你看看你的目录解构 NavMenu/NavMenu

  12. 一根烟
    • 陕西省

    插件不支持PHP7.3吗?

    1. Ryan
      • 未知地区

      有什么报错吗?我本地测试 PHP7.3没问题

  13. xxx
    • 江苏省

    1.3报错

目录
正在加载目录