自定义POST类型子菜单功能-自定义插件

时间:2015-05-27 作者:dea

我正在尝试添加新的自定义功能,以便对非管理员隐藏自定义帖子类型。在我的自定义帖子类型中,我有一些自定义分类法,然后有两个子菜单。管理员可以看到自定义帖子类型、分类法和子菜单的菜单,但其他用户只能看到子菜单。但是,当我尝试在激活挂钩上应用add\\u角色时,子菜单不会显示。我还尝试了add\\u cap,同样的情况也发生了。我还尝试在自定义post类型中添加功能,然后只显示分类法。我不知道我做错了什么。有什么想法吗?

编辑:根据评论中的要求,以下是我添加2个子菜单的方式:

     add_action(\'admin_menu\',\'bsp_plugin_menu\');
     function bsp_plugin_menu(){
add_submenu_page(\'edit.php?post_type=badge\', \'Add new student\', \'Add new students\', \'manage-options\',\'add-new-students\',\'bsp_add_new_students\');
add_submenu_page(\'edit.php?post_type=badge\', \'Show students\', \'Show students\', \'manage_options\',\'show-students\',\'bsp_students_show\');   
}

1 个回复
最合适的回答,由SO网友:dea 整理而成

所以要回答我的问题。。。我不知道这是否是最好的方法:在自定义帖子类型中,我添加了只有管理员有权限的功能,如:

    \'capabilities\'=>array(
        \'edit_post\'=>\'update_core\',
        \'read_post\'=>\'update_core\',
        \'delete_post\'=>\'update_core\',
        \'edit_posts\'=>\'update_core\',
        \'edit_others_posts\'=>\'update_core\',
        \'publish_posts\'=>\'update_core\',
        \'read_private_posts\'=>\'update_core\'
    ),
然后我也对自定义分类法进行了这样的操作:

    \'capabilities\'=>array(
    \'manage_terms\'=>\'manage_options\',
    \'edit_terms\'=>\'manage_options\',
    \'delete_terms\'=>\'manage_options\',
    \'assign_terms\'=>\'manage_options\',
    ),
所以只有管理员可以查看和管理它。对于capability参数中的子菜单,我刚刚输入了管理员、编辑和作者的共同功能(publish\\u posts)。

add_submenu_page(\'edit.php?post_type=badge\', \'Add new student\', \'Add new students\', \'publish_posts\',\'add-new-students\',\'bsp_add_new_students\');

结束

相关推荐

PHP致命错误:无法为wp-includes/capabilities.php中的非对象调用重载函数

我在apache日志中遇到了太多以下错误。PHP Fatal error: Cannot call overloaded function for non-object in wp-includes/capabilities.php on line 1187这是函数current\\u user\\u can($capability)的内部,第1187行如下所示:$current_user = wp_get_current_user(); 我不知道问题出在哪里?