首页 > 解决方案 > 动态编辑/添加菜单项 - Wordpress

问题描述

如果用户登录或未登录,我想相应地更改项目的菜单标签。如果用户未登录,我想显示登录,如果用户是管理员,我想显示管理员页面,如果普通用户登录,我想显示我的个人资料页面。

我试过这段代码。

add_filter( 'wp_nav_menu_items', 'dynamic_label_change', 10, 2 );

function dynamic_label_change( $items, $args ) 
{ 
       if (!is_user_logged_in() && $args->theme_location == 'topbar_navigation')
          { 
             $items = str_replace("Login", "Profile", $items);
          } 
      return $items;

}

标签: phpwordpress

解决方案


如果你想添加新的菜单项,那么下面的代码会有所帮助。

      // Add Login / Logout menu item dynamically to primary navigation menu
      function custom_menu_links( $items, $args ) {
          if ($args->theme_location == 'primary'){
             if (is_user_logged_in()) {
                 $items .= '<li><a href="'. wp_logout_url(home_url()) .'">Logout</a></li>';
               } else {
                 $items .= '<li><a href="'. site_url('wp-login.php') .'">Login</a></li>';
            }
       }

      return $items;
   }

add_filter( 'wp_nav_menu_items', 'custom_menu_links', 10, 2 );

推荐阅读