- Home
- Categorie
- Coding e Sistemistica
- CMS & Piattaforme Self-Hosted
- Aggiungere un item come submenu del menu principale
-
Aggiungere un item come submenu del menu principale
Buongiorno a tutti!
Nel mio sito in Wordpress sto utilizzando il plugin BuddyPress.
Nel mio "Menu Header" inserito come "Main Menu" vorrei aggiungere un link al profilo dell'utente.
Il seguente codice funziona correttamente:
// Filter wp_nav_menu() to add profile link add_filter( 'wp_nav_menu_items', 'my_nav_menu_profile_link'); function my_nav_menu_profile_link($menu) { if (!is_user_logged_in()) { return $menu; } else { $user_data = bbp_get_user_profile_url( get_current_user_id() ); $profilelink = '<li><a href="'.$user_data.'" >Profile</a></li>'; $menu = $menu . $profilelink; return $menu; } }
Però ho due problemi:
- come faccio a far in modo di inserirlo come item di un determinato sotto menu?
- vorrei utilizzare
$args->theme_location == ''
al fine di farlo visualizzare solo nel menu desiderato, ma non ho capito quale parametro associare.
Grazie.
-
Ho risolto per quanto riguarda il "theme_location".
Tramite:
/* DEBUG LOCATION MENU */ $locations = get_registered_nav_menus(); print_r($locations);
ho visualizzato le location registrate per i mie menu.
Successivamente ho editato il codice sopra così:
function my_nav_menu_profile_link($menu, $args) { if (is_user_logged_in() and $args->theme_location == 'main-menu') { $user_data = bbp_get_user_profile_url( get_current_user_id() ); $profilelink = '<li><a href="'.$user_data.'" >Profile</a></li>'; $menu = $menu . $profilelink; return $menu; } else { return $menu; } } add_filter( 'wp_nav_menu_items', 'my_nav_menu_profile_link', 10, 2);
Rimane sempre il problema riguardo la possibilità di inserire il mio item come submenu.
Grazie.
-
Risolto!
Tentavo un hook verso la funzione sbagliata, ho agito su wp_nav_menu_objects.
Ecco il codice:
function ravs_add_menu_parent_class( $items ) { if (is_user_logged_in()) { $link_profile = array ( 'title' => 'Profilo', 'menu_item_parent' => 937, 'ID' => '34343434343434343434', 'db_id' => '34343434343434343434', 'url' => bbp_get_user_profile_url( get_current_user_id() ), ); $items[] = (object) $link_profile; $link_logout = array ( 'title' => 'Logout', 'menu_item_parent' => 937, 'ID' => '12121212121212121212', 'db_id' => '12121212121212121212', 'url' => wp_logout_url(), ); $items[] = (object) $link_logout; } return $items; } add_filter( 'wp_nav_menu_objects', 'ravs_add_menu_parent_class' );
Magari può essere utile a qualcuno.