我正在尝试在用户成功登录后用名称替换Wordpress菜单项文本(Login)。
我有一个带有{display_name}
的菜单项作为导航标签。
内部functions.php
我到目前为止得到了以下内容。
function give_profile_name(){
$user=wp_get_current_user();
$name=$user->user_firstname;
return $name;
}
add_shortcode('profile_name', 'give_profile_name');
add_filter( 'wp_nav_menu_objects', 'my_dynamic_menu_items' );
function my_dynamic_menu_items( $menu_items ) {
foreach ( $menu_items as $menu_item ) {
if ( '#name_a#'==$menu_item->title ) {
global $shortcode_tags;
if ( isset( $shortcode_tags['profile_name'] ) ) {
// Or do_shortcode(), if you must.
$menu_item->title = call_user_func( $shortcode_tags['profile_name'] );
}
}
}
return $menu_items;
}
用户登录后,菜单会正确显示用户名,但一旦退出,菜单仍会在屏幕上显示{display_name}
。如何将其更改为“登录”等文本?