- 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
関数リファレンス/add role
目次
Description
Adds a new role to WordPress.
NB: This setting is saved to the database (in table wp_options, field wp_user_roles), so it might be better to run this on theme/plugin activation
Usage
%%% <?php add_role( $role, $display_name, $capabilities ); ?> %%%
Parameters
- $role
- (string) (required) Role name
- 初期値: なし
- $display_name
- (string) (required) Display name for role
- 初期値: なし
- $capabilities
- (array) (optional) Array of capabilities (see Roles and Capabilities for list of available capabilities)
- 初期値: array()
Returns
- (mixed)
- Returns a WP_Role object on success, null if that role already exists.
Example
Create a new "Basic Contributor" role.
$result = add_role( 'basic_contributor', __( 'Basic Contributor' ), array( 'read' => true, // true allows this capability 'edit_posts' => true, 'delete_posts' => false, // Use false to explicitly deny ) ); if ( null !== $result ) { echo 'Yay! New role created!'; } else { echo 'Oh... the basic_contributor role already exists.'; }
Create a new role when a plugin is activated. See register_activation_hook
function add_roles_on_plugin_activation() { add_role( 'custom_role', 'Custom Subscriber', array( 'read' => true, 'level_0' => true ) ); } register_activation_hook( __FILE__, 'add_roles_on_plugin_activation' );
Notes
When to call
Make sure that the global $wp_roles is available before attempting to add or modify a role. The best practice of course is to use your plugin- or theme-activation hook to make changes to roles (since you only want to do it once!).
mu-plugins will load too early, so use an action hook (like 'init') to wrap your add_role()
call if you're doing this in the context of an mu-plugin.
Delete existing role
If you are defining a custom role, and adding capabilities to the role using add_role()
, be aware that modifying the capabilities array and re-executing add_role()
will not necessarily update the role with the new capabilities list. The add_role()
function short-circuits if the role already exists in the database.
The workaround in this case is to precede your add_role()
call with a remove_role()
call that targets the role you are adding.
This is for development only. Once you have nailed down your list of capabilities, there's no need to keep the remove_role()
code, though there is, in fact, no harm in doing so.
Changelog
- Since: 2.0.0
Source Code
add_role()
is located in wp-includes/capabilities.php
.
Related
- add_role()
- remove_role()
- get_role()
- add_cap() /en
- remove_cap() /en
最新英語版: WordPress Codex » Function_Reference/add_role (最新版との差分)