您可以使用nav_menu_item_id
过滤方式如下:
add_filter( \'nav_menu_item_id\', function( $menu_id, $item, $args, $depth )
{
if( \'menu-item-27\' === $menu_id )
$menu_id = \'nava\';
return $menu_id;
}, 10, 4 );
但是,如果删除并重新插入菜单项,这对于菜单ID来说是“不稳定的”。您可能还希望以特定的菜单位置为目标。
一种常见的方法,我喜欢它的灵活性,就是检查特定的CSS类,我们可以在后端的导航UI中设置这些类。
下面是一个示例,我们检查set-id-nava
班如果设置了,那么我们用nava
:
add_filter( \'nav_menu_item_id\', function( $menu_id, $item, $args, $depth )
{
if( in_array( \'set-id-nava\', (array) $item->classes ) )
$menu_id = \'nava\';
return $menu_id;
}, 10, 4 );
我们还可以使其更加动态,并检查
set-id-???
.
我们甚至可以添加一个额外的输入字段来设置每个菜单项的CSS id。但这需要更多的工作。
如果你不想set-id-nava
作为CSS类,您可以将其删除,例如通过nav_menu_css_class
滤器