我如何隐藏Wordpress中的所有菜单,但特定自定义用户角色即代理商的Woocommerce订单除外。这是我的代码:
$role = 'agent';
$display_name = 'Agent';
$capabilities = array(
'read' => true, // Allows a user to read
'create_posts' => true, // Allows user to create new posts
'edit_posts' => true, // Allows user to edit their own posts
'edit_others_posts' => true, // Allows user to edit others posts too
'publish_posts' => true, // Allows the user to publish posts
'manage_categories' => true,
);
add_role( $role, $display_name, $capabilities );
答案 0 :(得分:0)
您可以执行以下操作,如果用户没有,则会隐藏与页面ID 7 关联的菜单项和菜单名称“ main ”权限 publish_posts 。
add_filter( 'wp_get_nav_menu_items', 'hide_nav_menu_items', 10, 2 );
function hide_nav_menu_items( $menu_items, $menu ) {
$menu_name = 'main';
$page_id_to_hide = 7;
if ( $menu->slug == $menu_name ) {
if( ! current_user_can('publish_posts') ) {
foreach( $menu_items as $key => $menu_item ) {
if( $menu_item->object_id == $page_id_to_hide )
unset( $menu_items[$key] );
}
}
}
return $menu_items;
}