如果我们在有需要设置不同的会员等级显示不同的菜单显示的时候如何设置呢?最近老蒋就有遇到这样的客户需求,他需要普通用户和会员用户在菜单上要显示不同的类目。这里找到这个解决办法记录下来,如果我们以后也有类似的需要可以参考。
1、创建新的菜单
这里我们创建一个新的菜单,代表是登录状态的。
2、代码部分
function wpc_wp_nav_menu_args( $args = '' ) {
if( is_user_logged_in() ) {
$args['menu'] = 'logged-in';
} else {
$args['menu'] = 'logged-out';
}
return $args;
}
add_filter( 'wp_nav_menu_args', 'wpc_wp_nav_menu_args' );
如果我们需要定位由主题创建的特定菜单位置,则可以使用以下方法:
function wpc_wp_nav_menu_args( $args = '' ) {
if( is_user_logged_in()) {
if( 'top-navigation' == $args['theme_location'] ) { // Change top-navigation to theme specific name
$args['menu'] = 'logged-in';
}
} else {
if( 'top-navigation' == $args['theme_location'] ) { // Change top-navigation to theme specific name
$args['menu'] = 'logged-out';
}
}
return $args;
}
add_filter( 'wp_nav_menu_args', 'wpc_wp_nav_menu_args' );
就是这样,我们可以看到已登录的访问者将看到登录菜单,而未注册或游客的用户将看到一个不同的菜单。