我在试着current-menu-item-id
在任何页面中。我用过this solution, 这使我非常接近解决方案。
我的问题是,下面的函数正在遍历页面上的所有菜单,而不仅仅是我希望它遍历的一个特定菜单:
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->ID;
}
}
return $sorted_menu_items;
}
。。。这意味着,如果您在菜单中多次链接到同一页面,则此函数可能会返回
current-menu-item-id
从错误的菜单。
是否有任何方法可以将此函数限制为only 浏览特定菜单,而不是所有菜单?我试图在变量/参数中传递特定的菜单项$sorted_menu_items
, 但这似乎行不通。
SO网友:Krzysztof Grabania
您可以将第二个参数传递给存储菜单名的函数。必须进行的更改:
add_filter( \'wp_nav_menu_objects\', \'wpse16243_wp_nav_menu_objects\', 10, 2 );
function wpse16243_wp_nav_menu_objects( $sorted_menu_items, $args )
在函数中,您将通过
$args[\'menu\']
所以
if ( $menu_item->current ) {
应更改为
if ( $menu_item->current && $args[\'menu\'] == \'name_of_menu_you_want_to_search\' ) {