如何在WordPress后台菜单中仅向管理员显示Services自定义文章类型链接
解决方案:基于用户权限控制自定义文章类型的后台菜单显示
你完全可以通过添加权限判断来实现这个需求,不用修改capability_type。只需要把show_in_menu的值从true替换成一个权限检查条件,让它仅对管理员返回true即可。
修改后的完整注册代码
register_post_type( 'services', array( 'labels' => array( 'name' => __( 'Services' ), 'singular_name' => __( 'Service' ) ), 'public' => true, 'has_archive' => false, 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' ), 'rewrite' => array('slug' => 'services'), // 核心修改:仅管理员能看到该后台菜单 'show_in_menu' => current_user_can('manage_options') ) );
逻辑说明
current_user_can('manage_options')是WordPress内置的权限检查函数,manage_options是管理员角色默认拥有的权限,编辑者(Editor)角色默认没有这个权限,因此菜单只会对管理员显示。- 由于你没有修改
capability_type,编辑者依然保留对Services文章类型的编辑、访问权限,通过自定义后台页面跳转过去时,他们可以正常操作内容。
小提示
如果修改后菜单显示没有立即生效,建议进入后台的设置 -> 固定链接页面,直接点击「保存更改」按钮刷新固定链接规则,避免缓存导致的异常。
内容的提问来源于stack exchange,提问作者Shtarley
相关产品推荐
相关产品推荐

