首页 > 解决方案 > WordPress 向所有注册用户显示菜单的功能?

问题描述

我正在创建一个插件并在仪表板 WordPress 中添加菜单

add_submenu_page('documents', 'Add Document', 'Add Document', 'manage_options','add_document', 'my_plugin_options3');

我还想向作为订阅者的注册用户显示该菜单选项。但是当我为订阅者执行此操作时,菜单仅显示在订阅者仪表板中,而当我使用 manage_options 时,它仅针对管理员而不是订阅者显示。我想在两者上都展示它。

add_menu_page( 'My Plugin Options', 'docs Management', 'subscriber', 'documents', 'my_plugin_options','',4 );

我从这里尝试了角色参考摘要

标签: wordpresswordpress-roleswordpress-capabilities

解决方案


订阅者和管理员是角色,您应该尝试使用这些角色中的功能,就像您为添加的第一个子菜单页面所做的那样。订阅者具有“读取”能力,就像其他所有用户角色一样,所以我将从那里开始。

add_menu_page( 'My Plugin Options', 'docs Management', 'read', 'documents', 'my_plugin_options','',4 );

如果您只想为订阅者和管理员显示菜单,而没有其他角色,您可以创建自己的功能,然后将其分配给您的菜单,如下所示:

<?php 
  global $wp_roles; 
  $wp_roles->add_cap( 'administrator', 'view_custom_menu' ); 
  $wp_roles->add_cap( 'subscriber', 'view_custom_menu' );

  add_menu_page( 'My Plugin Options', 'docs Management', 'view_custom_menu', 'documents', 'my_plugin_options','',4 );

?> 

推荐阅读