WordPress开发:获取当前页面菜单的当前菜单项
显示当前页面的面包屑导航有问题,但是这个面包屑路径反映的并不是页面本身的层级关系,而是菜单中的页面导航位置。因此,我们需要检测页面所在菜单中当前的菜单项。我在stackexchange上找到了一个很好的方法并注册了它。
使用wp_nav_menu_objects过滤器查找当前菜单项。在调用wp_nav_menu之前,过滤此过滤器的值以找到当前的菜单项。在全局变量中记录所需的信息,例如菜单 ID、标题或 url 等。调用wp_nav_menu后,可以使用该全局变量来显示信息。代码如下
add_filter( 'wp_nav_menu_objects', 'wpse16243_wp_nav_menu_objects' ); function wpse16243_wp_nav_menu_objects( $sorted_menu_items ) { foreach ( $sorted_menu_items as $menu_item ) { if ( $menu_item->current ) { $GLOBALS['wpse16243_title'] = $menu_item->title; break; } } return $sorted_menu_items; }
全局变量$GLOBALS[‘wpse16243_title’]记录了当前菜单中当前菜单项的标题。
一些更有用的信息如下
$menu_item->ID - Menu ID $menu_item->title - 该菜单项名称 $menu_item->post_title - Post Title,不一定和菜单项名称相同 $menu_item->url - 固定链接 $menu_item->object_id - post ID $menu_item->post_parent - Post Parent(例如page的parent page) $menu_item->menu_item_parent - 指在该菜单中的层级关系
如果您需要在调用菜单之前使用它,您可以先调用wp_nav_menu,但不要显示它。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。