有没有办法在没有插件的情况下重命名用户角色名称?

时间:2011-07-15 作者:Sean Lee

是否可以通过钩子重命名用户角色名,而不是使用插件?

编辑,例如,administrator »owner

6 个回复
最合适的回答,由SO网友:Ján Bočínec 整理而成
function change_role_name() {
    global $wp_roles;

    if ( ! isset( $wp_roles ) )
        $wp_roles = new WP_Roles();

    //You can list all currently available roles like this...
    //$roles = $wp_roles->get_names();
    //print_r($roles);

    //You can replace "administrator" with any other role "editor", "author", "contributor" or "subscriber"...
    $wp_roles->roles[\'administrator\'][\'name\'] = \'Owner\';
    $wp_roles->role_names[\'administrator\'] = \'Owner\';           
}
add_action(\'init\', \'change_role_name\');

http://www.garyc40.com/2010/04/ultimate-guide-to-roles-and-capabilities/

SO网友:Dharma

实际上,有很多方法可以实现这一点:

具有pure php and mysql 您可以在db中编辑序列化的条目。实际上,Wordpress将角色的序列化数组存储在wp_options 桌子

因此:

获取序列化数组:
SELECT option_value as serialized_string FROM wp_options WHERE option_name = \'wp_user_roles\';$rolesArray = unserialize($serialized_string)$rolesArray[\'role_key\'][\'name\'] = "New name"echo serialize($rolesArray)option_value 满足于上一点的输出如果您对Wordpress有信心,您甚至可以使用embedded Wordpress REPL in wp-cli 要获取存储值,请使用get_option(\'wp_user_roles\') 然后使用update_option 更新它。

And (always) remember to backup the db before options manipulation ;)

<否则,如果您不关心role\\u键值……使用wp-cli:

复制现有角色–$ wp role create new_role \'New Role\' --clone=old_role$ wp role delete old_role

SO网友:Mat Lipe

如果您使用的是WP 4.7+版本,则可以使用wp_roles_init 这样做:

add_action( \'wp_roles_init\', static function ( \\WP_Roles $roles ) {
    $roles->roles[\'administrator\'][\'name\'] = \'Owner\';
    $roles->role_names[\'administrator\'] = \'Owner\';
} );

SO网友:Wyck

一个简单的解决方案是使用add_role, 这样,您可以根据需要命名它,并添加任何功能。http://codex.wordpress.org/Function_Reference/add_role

SO网友:czepol

您可以创建自定义本地化文件。获取此文件:http://svn.automattic.com/wordpress-i18n/pot/trunk/wordpress.pot 并使用PoEdit工具进行编辑(例如)。在下一步中,将本地化文件另存为en\\u GB。mo(或其他)和编辑wp配置文件:

定义(“WPLANG”、“en\\U GB”);

SO网友:artnikpro

您可以直接在DB中编辑它,它将为您的网站进行永久编辑。这里是WP保留用户角色的地方

SELECT * from blog_options WHERE option_name = \'blog_user_roles\'

结束

相关推荐