如何在插件中为每个用户更改菜单?

时间:2014-01-03 作者:moslem

我需要为每个用户更改插件中的导航菜单,例如:

if(is_user_logged_in())
    wp_nav_menu(...);
else
    wp_nav_menu(...);
但是,当我在插件中应用上述代码时,它显示了一些错误。我该怎么办?

2 个回复
最合适的回答,由SO网友:TomC 整理而成

在仪表板中为每种类型的用户创建菜单>>外观>>菜单>>创建新菜单(例如http://example.com/wp-admin/nav-menus.php?action=edit&menu=0)然后在主题的函数中添加一个函数。php切换菜单。如下所示:

add_filter(\'wp_nav_menu_args\', \'wp_nav_menu_args_filter\');
function wp_nav_menu_args_filter($args = array()) {
   if (is_user_logged_in) { 
        // Menu for Logged In Users
        $args[\'menu\'] = "name-of-user-menu";
        return $args;           
    }   else { 
    // Default Menu
        return $args;       
    }
}

SO网友:Eugene Manuilov

使用不存在的函数is_user_login. 您需要使用is_user_logged_in() 相反

if( is_user_logged_in() )
    wp_nav_menu(...);
else
    wp_nav_menu(...);

结束