wodpress中html菜单,用代码读取和显示WordPress菜单

WordPress的菜单功能很好用,在外观->菜单下用户可以随意创建菜单,并将创建的菜单指定到某个菜单位置显示。如果我们想跳过菜单位置的选择,直接显示菜单怎么办呢?最近需要写一个ET Builder的菜单工具,研究了一下WordPress默认小工具“自定义菜单”(Custom Menu Widget)的写法。

获取用户创建的菜单

通过下面的代码可以获取用户在后台创建的所有菜单,将代码放在functions.php中访问站点即可看到。$menus = get_terms('nav_menu');

foreach( $menus as $menu ){

echo '

'; var_export($menu); echo '
';

}

上面的代码可以得到类似下面这样的结果stdClass::__set_state(array(

'term_id' => '9',

'name' => 'Footer menu',

'slug' => 'footer-menu',

'term_group' => '0',

'term_taxonomy_id' => '9',

'taxonomy' => 'nav_menu',

'description' => '',

'parent' => '0',

'count' => '5',

))

由此看出,通过$menu变量可以获取菜单的名称、slug、描述等等信息,例如用select显示所有菜单,供用户选择,类似custom menu工具。$menus = get_terms('nav_menu');

echo '';

foreach ($menus as $menu) {

echo '' . $menu->name . '';

}

echo '';

显示菜单

用程序的方法显示菜单,需要知道菜单的名字或者id,假设知道菜单名称,则显示菜单的代码如下$menu = 'Footer menu';

$nav_menu = wp_get_nav_menu_object($menu);

wp_nav_menu( array( 'fallback_cb' => '', 'menu' => $nav_menu ));

用wp_get_nav_menu_object获取代表菜单的对象

通过menu参数将这个对象传递给wp_nav_menu函数,表示要显示的是这个名为“Footer menu”的菜单

fallback_cb参数设为空,因为我们直接调用了某个已经创建的菜单,所以不需要fallback函数(即该menu不存在时要调用的函数,默认是wp_page_menu)

wp_get_nav_menu_object用法<?php wp_get_nav_menu_object( $menu ); ?>

$menu: 可以是菜单的名称id、slug或name

返回值:找到菜单则返回menu object,否则返回false

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值