从管理员视图中删除用于注册自定义帖子类型的插件的子菜单

时间:2019-04-16 16:20:00

标签: wordpress plugins woocommerce

我知道关于此但还有357,982个其他帖子,但它们都有点不足。一个实际的示例适用于我们当中那些每天都不写4,594,334行代码的人。

SO-就目前而言,场景是:

  1. 注册自定义帖子类型的插件
  2. 您要隐藏的子菜单

接下来是什么?

1 个答案:

答案 0 :(得分:0)

我找到的最佳解决方案实际上非常简单,并且需要对源进行一点检查并充分了解要寻找的内容。

在此示例中,woocommerce正在使用显示为“产品选项”的子菜单注册自定义帖子类型“产品”。我们想为非管理员用户隐藏它。

检查菜单项后,我们发现父菜单的超链接为'edit.php?post_type = event_ticket'-再往前看,我们看到子菜单的超链接为'{{3} }'

我们将使用“ add_action”挂钩,如下所示。请注意,我们在父菜单中使用url,但是仅在子菜单中使用page参数。

add_action('admin_menu','remove_menu_pages',999);

function remove_menu_pages()
{
    if (current_user_can('manage_options') == false)
    {
        //1st parameter is parent URL | second is the 'page' parameter from the child url 
        remove_submenu_page('edit.php?post_type=product', 'product_attributes');

    }
}

将此添加到您的functions.php中,然后以非管理员用户身份登录,该子菜单现在应隐藏。