垃圾站 WP教程 Wordpress博客根据不同的用户权限显示不同的菜单

Wordpress博客根据不同的用户权限显示不同的菜单

Wordpress博客中如何对不同权限的用户显示不同的菜单呢?由于Wordpress源码的菜单函数 wp_nav_menu() 的 wp_nav_menu_args 恰是处理函数参数的,所以博主们完全可以利用这一点实现对不同权限的用户显示不同的菜单……

当然你的主题需要有多个不同的菜单,再记录下这些菜单的ID,之后在function.php函数文件里添加下面的代码:

[php]
add_filter( 'wp_nav_menu_args', 'child_nav_menu_args' );
/**
* Modifies the Navigation Menu based on current user capabilities
*
* @uses gbootstrap_nav_args() Sets Genesis Bootstrap Navigation Args for wp_nav_menu().
* @param array $args Arguments for wp_nav_menu()
* @return array $args Modified Arguments for wp_nav_menu()
* @since 1.0.0
*/
function child_nav_menu_args( $args ) {
locations.
if ( '' != $args['theme_location'] ) return;
//这里分别对应填上对应的用户权限及对应的菜单id, 也可以填写菜单名或是菜单slug
$menus = array(
'administrator' => 3,
'editor' => 4,
'author' => 7,
'contributor' => 8,
'subscriber' => 9,
);
$current_user = wp_get_current_user();
if ( $current_user->has_cap( 'manage_options' ) )
$args['menu'] = $menus['administrator'];
if ( $current_user->has_cap( 'edit_others_posts' ) )
$args['menu'] = $menus['editor'];
if ( $current_user->has_cap( 'publish_posts' ) )
$args['menu'] = $menus['author'];
if ( $current_user->has_cap( 'edit_posts' ) )
$args['menu'] = $menus['contributor'];
if ( $current_user->has_cap( 'read' ) )
$args['menu'] = $menus['subscriber'];
return $args;
}
[/php]

本文由垃圾站编辑整理,转载请注明原文地址:https://www.lajiz.cn/1354.html

上一篇
下一篇
联系我们

联系我们

返回顶部