Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di exFelino
    Registrato dal
    Jul 2014
    residenza
    Aci Catena (CT)
    Messaggi
    708

    [Wordpress] 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:
    codice:
    // 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:
    1) come faccio a far in modo di inserirlo come item di un determinato sotto menu?
    2) vorrei utilizzare
    codice:
    $args->theme_location == ''
    al fine di farlo visualizzare solo nel menu desiderato, ma non ho capito quale parametro associare.

    Grazie.

  2. #2
    Utente di HTML.it L'avatar di exFelino
    Registrato dal
    Jul 2014
    residenza
    Aci Catena (CT)
    Messaggi
    708
    Ho risolto per quanto riguarda il "theme_location".

    Tramite:
    codice:
    /* 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ì:
    codice:
    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.

  3. #3
    Utente di HTML.it L'avatar di exFelino
    Registrato dal
    Jul 2014
    residenza
    Aci Catena (CT)
    Messaggi
    708
    Risolto!

    Tentavo un hook verso la funzione sbagliata, ho agito su wp_nav_menu_objects.

    Ecco il codice:
    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.


Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.