Questions tagged «capabilities»

WordPress使用角色的概念,旨在使网站所有者能够控制用户在网站内可以做什么和不能做什么。每个角色都可以执行称为功能的一组任务。

5
获取WordPress网站上当前可用角色的列表?
编写WordPress插件时,通常需要设置选项,以便网站上的角色可以访问某些功能或内容。为此,插件开发人员需要获取该站点上存在的角色列表,以在该选项中使用。因为可以创建自定义角色,所以我们不能假设默认角色是唯一可用的角色。 提取列表的最佳方法是什么?

4
编辑者可以创建除管理员以外的任何新用户
我已经为客户建立了一个WordPress网站。客户端具有编辑者角色,但是我已经安装了Members插件,并为客户端提供了将新用户添加到WP admin的功能。这很好。 我的问题是,我希望客户端能够像贡献者,订阅者,编辑者和作者(而不是管理员)那样创建新用户。客户端创建的新用户不应具有管理员角色。是否可以某种方式隐藏此选项? 谢谢Vayu

4
功能和自定义帖子类型
我有一个自定义帖子类型,我想限制对某些角色的访问,但是,我已经使用该自定义帖子类型添加了内容,现在必须对其进行限制。capability_type是“ post” 'capability_type' => 'post' 但是,当内容显示在后端时,哪个很好,但是现在,一旦添加任何功能,内容就会从后端消失? 我尝试自定义功能类型以包括复数定义来构造自己的功能类型,但是一旦删除或更改功能类型,它就消失了! 完整代码: add_action( 'init', 'register_cpt_gallery' ); function register_cpt_gallery() { $labels = array( 'name' => _x( 'Galleries', 'gallery' ), 'singular_name' => _x( 'Gallery', 'gallery' ), 'add_new' => _x( 'Add New', 'gallery' ), 'add_new_item' => _x( 'Add New Gallery', 'gallery' ), 'edit_item' => _x( 'Edit Gallery', …




6
可以从特定用户角色隐藏“自定义帖子类型” UI /菜单吗?
我想要做的是完全隐藏特定用户角色的自定义帖子类型的用户界面...以前我已经找到了很多有关如何禁止使用这些CPT的资源,但没有什么可以真正让您完全隐藏CPT UI所有这些都基于登录到仪表板的用户。 这很重要,因为我需要客户完全不使用商店的自定义帖子类型,而且如果客户可以在仪表板上看到商店的CPT UI,则仍然可以查询他们的功能是否有所限制,因为他们仍然要查询结果他们如何继续自己添加产品。 我真的很喜欢不使用插件来完成此操作,但是我想,如果有某种方法能够以一种非ated肿的方式完成任务,那仍然很好。 谢谢您的帮助,SB


4
删除其他用户查看用户列表中管理员的能力?
(主持人注意:原始标题为“从用户菜单中删除管理员”) 我创建了一个客户端管理员角色,该角色实质上是一个具有添加/删除用户功能的编辑器。文章“ 编辑者可以创建除管理员以外的任何新用户 ”在帮助防止我的新客户端管理员角色编辑或创建True管理员用户方面表现出色。 但是,理想的做法是在查看用户时将管理员与客户端管理员隔离。我希望他们“相信”他们是其网站的管理员,但我不希望他们甚至能够查看我的角色/用户- 当他们位于“用户”中时,实际上向他们隐藏了“管理员”角色面板。

2
如何为用户角色添加功能?
我正在管理Wordpress网络,并想将unfiltered_html用户功能添加到已经预定义的Admin用户角色中。在Wordpress的标准安装中,管理员帐户已经具有此功能,但在MU安装中,只有超级管理员才具有此功能。WordPress的角色和能力。 如何在主题或插件中增加管理员角色?

6
如何使所有人都能访问草稿帖子?
我的Wordpress网站上有几篇未发表的帖子,我试图使用普通的帖子标签(site.com/post-here)使普通用户(未登录)可以访问它。我了解这可能不是最佳做法,但出于我的特殊目的,需要这样做。 我尝试将以下代码段添加到我的functions.php文件中: function enable_view_drafts() { $role = get_role( 'subscriber' ); $role->add_cap( 'read_private_posts' ); $role->add_cap( 'edit_posts' ); } add_action( 'after_setup_theme', 'enable_view_drafts'); 我也尝试使用init钩子代替after_setup_theme。没运气。 我的理解是对角色的更改已保存到数据库中,因此只需执行一次。这就是为什么我使用after_setup_theme钩子来调用函数的原因。 但是,当我尝试以普通用户身份访问页面时,系统显示的是404页面,而不是帖子内容。我也尝试加载预览URL(site.com/?p=212&preview=true),但是也没有用。 这些是我的猜测: 普通用户没有足够的时间caps来阅读草稿帖子。 任何用户(包括管理员)都无法测试和查看前端的草稿。 为了完成我要完成的工作,我必须进行哪些更改?如果不可能,您建议什么替代解决方案? 注意:我不是在寻找基于插件的解决方案。

2
重置默认角色和功能
我一直很难在角色中添加自定义帖子类型功能(向默认角色中添加功能),我怀疑周围的混乱可能导致了一些问题。我还安装和卸载了各种插件,其中一些插件增加了功能。结果,我的WP角色对象有些混乱。有谁知道重置功能的方法,还是我需要全新安装?

1
add_role()只运行一次?
我惊讶地发现add_role()修改了数据库,并且如果角色已经存在则失败。这里有两个含义,一个比另一个严重:1)如果您正在开发并更新add_role代码,则必须首先remove_role()2)一旦正确,就永远不必运行该代码再次。 因此,通常我一直将add_role()放在wp_loaded动作挂钩中。并且由于我正在开发中,所以我还在add_role之前添加了remove_role(),因此可以确定,如果我修改了大写字母列表,它将实际上生效。 但是很明显,每次访问博客页面时都在运行此命令。好的,我可以将其置于仅限管理员的操作中,也可以在“用户”或“工具”下创建一个插件页面,该角色可以一次创建。我想我希望有一个更简单,更优雅的解决方案。 我不认为这里有一次run_once动作吗? 还是最佳实践只是添加角色,然后多次使用add_cap()?即使那样,我仍然认为add_cap正在访问数据库。 仅考虑减少不必要的数据库访问的最佳方法。您的最佳做法是什么?

3
使用current_user_can()和相关函数的有效时间是几点?
在香草WP核心加载期间,正在设置当前用户,该用户$wp-init()在主题加载之后,init挂机之前。这与功能挂钩init或以后使用的良好做法是一致的。 但是,调用相关功能(例如current_user_can() 早于此)也是一种常见的做法。从定义上讲,这是与加载过程的早期阶段兼容的插件所必需的(我的Toolbar Theme Switcher插件就是一个示例)。 文档没有主张或反对这种做法(我可以找到)。 但是,某些插件似乎可以与用户相关的功能挂起,并init始终期望后置状态。 例如,bbPress引发以下通知: // If the current user is being setup before the "init" action has fired, // strange (and difficult to debug) role/capability issues will occur. if ( ! did_action( 'after_setup_theme' ) ) { _doing_it_wrong( __FUNCTION__, __( 'The current user is being initialized without …


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.