Limite o rastreador personalizado apenas para o front-end

Estou usando o seguinte caminhante personalizado para ocultar as páginas de Login e Registro da minha navegação criada com wp_get_nav_menu_items …..

function wpse31748_exclude_menu_items( $items, $menu, $args ) { // Iterate over the items to search and destroy if ( is_user_logged_in() ) { $registerpage = get_page_by_title( 'Register' ); $loginpage = get_page_by_title( 'Login' ); foreach ( $items as $key => $item ) { if ( $item->object_id == $registerpage->ID ){ unset( $items[$key] ); } elseif ( $item->object_id == $loginpage->ID ){ unset( $items[$key] ); } else{} } return $items; } else { return $items; } } add_filter( 'wp_get_nav_menu_items', 'wpse31748_exclude_menu_items', null, 3 ); 

Isso funciona bem, mas também está afetando a página de menus dentro do painel, existe uma maneira de limitar o rastreador para afetar apenas o front-end?

Solutions Collecting From Web of "Limite o rastreador personalizado apenas para o front-end"

Você pode tentar o !is_admin() para que seu código seja:

 function wpse31748_exclude_menu_items( $items, $menu, $args ) { // Iterate over the items to search and destroy if ( !is_admin() && is_user_logged_in() ) { $registerpage = get_page_by_title( 'Register' ); $loginpage = get_page_by_title( 'Login' ); foreach ( $items as $key => $item ) { if ( $item->object_id == $registerpage->ID ){ unset( $items[$key] ); }elseif ( $item->object_id == $loginpage->ID ){ unset( $items[$key] ); } } } return $items; } add_filter( 'wp_get_nav_menu_items', 'wpse31748_exclude_menu_items', null, 3 );