Aktueller Benutzer in der benutzerdefinierten Menüelement-URL

Ich verwende S2Member + Buddypress auf einer kompatiblen Vorlage. Ich habe 8 Menüpunkte und benutze die “Menu Items Visibility Control”, um den 7. für die Ansicht auf current_user_is(s2member_level1) | in_array('administrator', $GLOBALS['current_user']->roles) current_user_is(s2member_level1) | in_array('administrator', $GLOBALS['current_user']->roles) Diese Sichtbarkeit funktioniert ordnungsgemäß.

Ich benötige eine Möglichkeit, ein benutzerdefiniertes Menüelement zu erstellen, das mit einer Seite verknüpft wird, die die folgende Struktur enthält:

 http://localhost/%%current_user_nicename%%/events/my-events/?action=edit 

Ich weiß nicht, wie ich den aktuellen Benutzernamen in die URL einbinden soll. Ich bin auf diesen Beitrag gestoßen:.

* Es muss eine einfache Lösung geben, wenn ich die URL eines benutzerdefinierten Menüelements leer lasse. Kann ich die URL anderswo in meinem Code angeben?

Solutions Collecting From Web of "Aktueller Benutzer in der benutzerdefinierten Menüelement-URL"

Glückwunsch, es herauszufinden. Vielleicht würde das auch funktionieren:

 function change_menu($items){ foreach($items as $item){ if ($item-> post_name == 'the-slug')/*replace "the-slug" with menu item post_name */ $item->url = bp_loggedin_user_domain() . '/events/my-events/?action=edit'; } return $items; } add_filter('wp_nav_menu_objects', 'change_menu'); 

Ich habe es mit einer Filterfunktion herausgefunden. Dies findet das Obj des Nav-Menüs, das dem gegebenen Slug entspricht, und modifiziert dann seine URL. Ich habe den Menüeintrag mit Sichtbarkeitskontrolle in meinem Dashboard-Menü verlassen. Die URL ist anfänglich leer.

Hinzugefügt zu functions.php:

function getUN() { global $current_user; get_currentuserinfo(); return $current_user->user_login; } function change_menu($items){ foreach($items as $item){ if ($item-> post_name == 'the-slug')/*replace "the-slug" with menu item post_name */ { $item->url = get_site_url().'/members/'.getUN().'/events/my-events/?action=edit'; } } return $items; } add_filter('wp_nav_menu_objects', 'change_menu');