Aggiungere un item come submenu del menu principale

felino

Utente Attivo
12 Dic 2013
940
10
18
Aci Catena (Catania)
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.
 

felino

Utente Attivo
12 Dic 2013
940
10
18
Aci Catena (Catania)
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.
 

felino

Utente Attivo
12 Dic 2013
940
10
18
Aci Catena (Catania)
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.

;)
 
Discussioni simili
Autore Titolo Forum Risposte Data
I aggiungere la sessione PHP 8
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
E Aggiungere Parole PHP 1
A aggiungere stringa all'inizio di ogni riga di un file txt PHP 3
MarcoGrazia Aggiungere o rimuovere classi in javascript Javascript 1
F Aggiungere automaticamente sito a home del telefono HTML e CSS 2
C Aggiungere blocco dati Javascript 6
F [PHP] Aggiungere ruolo per accedere alle pagine PHP 2
Cosina Aggiungere pulsante pause/play a slideshow Javascript 0
A Twitter aggiungere tweet a campagna esistente o salvare pubblico Social Media Marketing 0
S aggiungere colonna date in una tabella già esistente Database 0
P [PHP] Aggiungere un mio script a prestashop? PHP 10
Shyson [PHP] Aggiungere link al codice PHP 0
D Aggiungere file .css esterno su Android HTML e CSS 4
R [PHP] Aggiungere 90 minuti a stringa orario PHP 1
brasoft2019 [PHP] aggiungere timestamp in tabella correlata PHP 0
P [PHP] Aggiungere giorni e stampare risultato da data inserita in input PHP 3
L [Java] Aggiungere elementi ad array JSON Java 0
F [WordPress] [HTML] Aggiungere una pagina solo allo sticky menu WordPress 4
C [PHP] Aggiungere pulsante paypal PHP 2
M [javascript] Aggiungere eventi al caricamento Javascript 0
M aggiungere streaming audio a pagina html HTML e CSS 2
trattorino [PHP] sql aggiungere dato in una tabella senza cancellare contenuto PHP 6
Francesco Oliviero Aggiungere comando a pulsante HTML HTML e CSS 1
felino [WordPress] [WooCommerce] Ordine: aggiungere nuovi stati con notifica email al cliente WordPress 4
L [Photoshop] Aggiungere file video in timeline Photoshop 1
D [Photoshop] aggiungere piu tracce a immagine Photoshop 4
D Aggiungere slash finale ad URL con .htaccess Web Server 2
G [Javascript] aggiungere sub-namespace Javascript 0
L Aggiungere contenuto con ajax durante lo scroll jQuery 1
felino [WordPress] [Woocommerce] Aggiungere un costo addizionale per prodotto WordPress 0
G [RISOLTO][Javascript] aggiungere elemento ad array definito nella finestra madre da popup Javascript 4
elpirata Aggiungere un disco ssd separato dal raid 1 Hardware 0
S (VENDO) Possiamo aggiungere fino a 20000 Membri nei Gruppi Facebook Italiani Annunci servizi di Social Media Marketing 2
trattorino [PHP] aggiungere html in un codice PHP 0
otto9due Aggiungere n. giorni ad una data nel datepiker jQuery 4
R [HTML] Aggiungere una tabella a fianco di altre tabelle... HTML e CSS 6
F aggiungere codice dopo n elementi jquery jQuery 1
L [Javascript] Aggiungere una riga ad una tabella Javascript 5
asevenx [Javascript] aggiungere righe con select da database e calcolo sconto in automatico Javascript 0
Monital [Javascript] decidere dove aggiungere il campo dinamicamente Javascript 1
asevenx [Javascript] aggiungere dinamicamente un campo di un form Javascript 3
ACarty [Javascript] Aggiungere link alle foto. Javascript 19
matteoraggi Aggiungere filtri a woocommerce WordPress 0
S appinventor, aggiungere tasto registrazione Sviluppo app per Android 1
V Aggiungere un img nel background Sviluppo app per Android 1
felino Capability: aggiungere cap all'editor per admin.php?page WordPress 0
E problema per aggiungere un database mdf da visual studio .NET Framework 9
M Aggiungere input text dopo aver selezionato un campo da una select option Presentati al Forum 0
M aggiungere dei div non sostituirli Javascript 1

Discussioni simili