不确定这是最简单的方法,但您可以通过以下方式有条件地将筛选器添加到要修改的位置wp_nav_menu_args
过滤时间wp_nav_menu
调用,然后立即删除过滤器,使其不会应用于其他菜单。
function wpa108544_nav_menu_args( $args ){
// check if it\'s the location we want the filter applied to
if( \'primary\' == $args[\'theme_location\'] )
add_filter( \'wp_get_nav_menu_items\', \'wpa108544_get_nav_menu_items\', 10, 3 );
return $args;
}
add_filter( \'wp_nav_menu_args\', \'wpa108544_nav_menu_args\' );
function wpa108544_get_nav_menu_items( $items, $menu, $args ){
// remove the filter
remove_filter( current_filter(), __FUNCTION__, 10, 3 );
// do your menu manipulation stuff here
}